Revision 57285
Added by Katerina Iatropoulou over 4 years ago
SearchServiceImpl.java | ||
---|---|---|
165 | 165 |
refineFields = new ArrayList<String>(fields); |
166 | 166 |
} |
167 | 167 |
|
168 |
return newSearch(text, locale, refineFields, new ArrayList<String>(), page, size, "", sTransformer, oldRefineTransformer, true); |
|
168 |
return newSearch(text, locale, refineFields, null, new ArrayList<String>(), page, size, "", sTransformer, oldRefineTransformer, true);
|
|
169 | 169 |
} |
170 | 170 |
|
171 | 171 |
@Override |
... | ... | |
200 | 200 |
if (fields!=null) { |
201 | 201 |
refineFields = new ArrayList<String>(fields); |
202 | 202 |
} |
203 |
SearchResult searchResult = newSearch(queryText, locale, refineFields, new ArrayList<String>(), page, size, format, sTransformer, oldRefineTransformer, true); |
|
203 |
SearchResult searchResult = newSearch(queryText, locale, refineFields, new ArrayList<>(), new ArrayList<String>(), page, size, format, sTransformer, oldRefineTransformer, true);
|
|
204 | 204 |
|
205 | 205 |
Formatter formatter = transformerFactory.getFormatter(format); // formatter cannot be returned as null |
206 | 206 |
try { |
... | ... | |
214 | 214 |
} |
215 | 215 |
|
216 | 216 |
|
217 |
public SearchResult newSearch (String text, String locale, List<String> refinefields, List<String> fieldQueries, |
|
217 |
public SearchResult newSearch (String text, String locale, List<String> refinefields, List<String> specialFacets, List<String> fieldQueries,
|
|
218 | 218 |
int from, int to, String format, Transformer transformer, Transformer oldRefineTransformer, |
219 | 219 |
boolean oldPaging) throws SearchServiceException { |
220 | 220 |
logger.info("newSearch > from: " + from + " to:" + to); |
... | ... | |
237 | 237 |
try { |
238 | 238 |
//TODO see parser and maybe delete! |
239 | 239 |
//query = new CQLParser().parse(query).toCQL(); |
240 |
String eprQuery = createEprQuery(query, refinefields, fieldQueries); |
|
240 |
String eprQuery = createEprQuery(query, refinefields, specialFacets, fieldQueries);
|
|
241 | 241 |
|
242 | 242 |
epr = index.getBrowsingStatistics(eprQuery, "all", mdFormat, indexLayout); |
243 | 243 |
|
... | ... | |
286 | 286 |
return new SearchResult(query, Locale.getDefault().toString(), rs.size(), from, to, searchResults, browseResults, refinefields); |
287 | 287 |
} |
288 | 288 |
|
289 |
public void cursorSearch(String text, List<String> refinefields, List<String> fieldQueries, |
|
289 |
public void cursorSearch(String text, List<String> refinefields, List<String> specialFacets, List<String> fieldQueries,
|
|
290 | 290 |
String format, Transformer transformer, OutputStream os) throws SearchServiceException { |
291 | 291 |
|
292 | 292 |
long startTime = System.nanoTime(); |
... | ... | |
304 | 304 |
|
305 | 305 |
|
306 | 306 |
try { |
307 |
String eprQuery = createEprQuery(query, refinefields, fieldQueries); |
|
307 |
String eprQuery = createEprQuery(query, refinefields, specialFacets, fieldQueries);
|
|
308 | 308 |
epr = index.getBrowsingStatistics(eprQuery, "all", mdFormat, indexLayout); |
309 | 309 |
|
310 | 310 |
if (epr == null) { |
... | ... | |
365 | 365 |
} |
366 | 366 |
} |
367 | 367 |
|
368 |
public static String createEprQuery(String query, List<String> refineFields, List<String> fieldQueries) { |
|
368 |
public static String createEprQuery(String query, List<String> refineFields, List<String> specialFacets, List<String> fieldQueries) {
|
|
369 | 369 |
StringBuffer queryBuffer = new StringBuffer(); |
370 | 370 |
queryBuffer.append("query="); |
371 | 371 |
|
... | ... | |
375 | 375 |
StringBuffer fqBuffer = new StringBuffer(); |
376 | 376 |
fqBuffer.append("&fq="); |
377 | 377 |
|
378 |
StringBuffer sfBuffer = new StringBuffer(); |
|
379 |
sfBuffer.append("&sf="); |
|
380 |
|
|
378 | 381 |
if (query != null) { //TODO consider exception? |
379 | 382 |
queryBuffer.append(query); |
380 | 383 |
} |
... | ... | |
388 | 391 |
} |
389 | 392 |
} |
390 | 393 |
|
394 |
if(specialFacets != null) { |
|
395 |
for (Iterator<String> iterator = specialFacets.iterator(); iterator.hasNext(); ) { |
|
396 |
sfBuffer.append(iterator.next()); |
|
397 |
if (iterator.hasNext()) { |
|
398 |
sfBuffer.append(","); |
|
399 |
} |
|
400 |
} |
|
401 |
} |
|
402 |
// logger.debug("special buffer " + sfBuffer.toString()); |
|
403 |
|
|
391 | 404 |
if(fieldQueries != null) { |
392 | 405 |
for (Iterator<String> iterator = fieldQueries.iterator(); iterator.hasNext(); ) { |
393 | 406 |
fqBuffer.append(iterator.next()); |
... | ... | |
397 | 410 |
} |
398 | 411 |
} |
399 | 412 |
|
400 |
return queryBuffer.append(facetsBuffer.toString()).append(fqBuffer.toString()).toString(); |
|
413 |
return queryBuffer.append(facetsBuffer.toString()).append(sfBuffer.toString()).append(fqBuffer.toString()).toString();
|
|
401 | 414 |
} |
402 | 415 |
|
403 | 416 |
|
... | ... | |
406 | 419 |
//I did not want to pass a parameter since I do not know if we are going to keep it. This is for a tech meeting showcase. |
407 | 420 |
//If we want to keep this I need to redesign. |
408 | 421 |
|
409 |
public SearchResult newSearchWithoutFieldQueries (String text, String locale, List<String> refinefields, List<String> fieldQueries,
|
|
410 |
int from, int to, String format, Transformer transformer, Transformer oldRefineTransformer,
|
|
411 |
boolean oldPaging) throws SearchServiceException { |
|
422 |
public SearchResult newSearchWithoutFieldQueries (String text, String locale, List<String> refinefields, List<String> specialFacets,
|
|
423 |
List<String> fieldQueries, int from, int to, String format, Transformer transformer,
|
|
424 |
Transformer oldRefineTransformer, boolean oldPaging) throws SearchServiceException {
|
|
412 | 425 |
logger.info("non filtered search for... > from: " + from + " to:" + to); |
413 | 426 |
long startTime = System.nanoTime(); |
414 | 427 |
|
... | ... | |
426 | 439 |
try { |
427 | 440 |
//TODO see parser and maybe delete! |
428 | 441 |
//query = new CQLParser().parse(query).toCQL(); |
429 |
String eprQuery = createEprQuery(query, refinefields, fieldQueries); |
|
442 |
String eprQuery = createEprQuery(query, refinefields, specialFacets, fieldQueries);
|
|
430 | 443 |
|
431 | 444 |
epr = index.getBrowsingStatistics(eprQuery, "all", mdFormat, indexLayout); |
432 | 445 |
|
Also available in: Unified diff
return facets with more than the default 100 value