Revision 30124
Added by Sandro La Bruzzo over 9 years ago
SolrIndexClient.java | ||
---|---|---|
86 | 86 |
MetadataReference mdRef = new MetadataReference(getFormat(), getLayout(), getInterpretation()); |
87 | 87 |
SolrIndexQuery translatedQuery = (SolrIndexQuery) solrIndexQueryFactory.getIndexQuery(QueryLanguage.CQL, query, this, mdRef); |
88 | 88 |
translatedQuery.setFacet(true); |
89 |
|
|
89 | 90 |
if (browseFields != null) { |
90 | 91 |
for (String field : browseFields) { |
91 | 92 |
translatedQuery.addFacetField(field); |
... | ... | |
108 | 109 |
} |
109 | 110 |
|
110 | 111 |
/** |
112 |
* {@inheritDoc} |
|
113 |
* |
|
114 |
* @throws IndexClientException |
|
115 |
* |
|
116 |
* @see eu.dnetlib.functionality.index.client.IndexClient#browse(java.lang.String, int) |
|
117 |
*/ |
|
118 |
@Override |
|
119 |
public List<BrowseEntry> browse(final String query, final List<String> browseFields, final int max, final List<String> filterQuery) |
|
120 |
throws IndexClientException { |
|
121 |
MetadataReference mdRef = new MetadataReference(getFormat(), getLayout(), getInterpretation()); |
|
122 |
SolrIndexQuery translatedQuery = (SolrIndexQuery) solrIndexQueryFactory.getIndexQuery(QueryLanguage.CQL, query, this, mdRef); |
|
123 |
translatedQuery.setFacet(true); |
|
124 |
if (filterQuery != null) { |
|
125 |
for (String fq : filterQuery) { |
|
126 |
translatedQuery.addFilterQuery(fq); |
|
127 |
} |
|
128 |
} |
|
129 |
|
|
130 |
if (browseFields != null) { |
|
131 |
for (String field : browseFields) { |
|
132 |
translatedQuery.addFacetField(field); |
|
133 |
|
|
134 |
} |
|
135 |
translatedQuery.setFacetLimit(max); |
|
136 |
} |
|
137 |
|
|
138 |
try { |
|
139 |
SolrIndexQueryResponse response = new SolrIndexQueryResponse(server.query(translatedQuery)); |
|
140 |
QueryResponseParser responseParser = queryResponseFactory.getQueryResponseParser(response, mdRef); |
|
141 |
List<BrowsingRow> results = responseParser.getBrowsingResults(); |
|
142 |
List<BrowseEntry> out = convertBrowsEntry(browseFields, results, responseParser.getAliases()); |
|
143 |
return out; |
|
144 |
|
|
145 |
} catch (SolrServerException e) { |
|
146 |
throw new IndexClientException("Error on executing a query " + query, e); |
|
147 |
} |
|
148 |
|
|
149 |
} |
|
150 |
|
|
151 |
/** |
|
111 | 152 |
* Creates the connection. |
112 | 153 |
* |
113 | 154 |
* @return the string |
... | ... | |
157 | 198 |
SolrIndexQuery translatedQuery = (SolrIndexQuery) solrIndexQueryFactory.getIndexQuery(QueryLanguage.CQL, query, this, mdRef); |
158 | 199 |
translatedQuery.setQueryOffset(from); |
159 | 200 |
translatedQuery.setQueryLimit(to - from); |
201 |
if (filterQuery != null) { |
|
202 |
for (String fq : filterQuery) { |
|
203 |
translatedQuery.addFilterQuery(fq); |
|
204 |
} |
|
205 |
} |
|
206 |
|
|
160 | 207 |
try { |
161 | 208 |
SolrIndexQueryResponse response = new SolrIndexQueryResponse(server.query(translatedQuery)); |
162 | 209 |
QueryResponseParser responseParser = queryResponseFactory.getQueryResponseParser(response, mdRef); |
Also available in: Unified diff
added filter by index id in the inspector ui