Project

General

Profile

« Previous | Next » 

Revision 57285

return facets with more than the default 100 value

View differences:

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