Project

General

Profile

« Previous | Next » 

Revision 57285

return facets with more than the default 100 value

View differences:

SearchApiService.java
49 49
                                      @DefaultValue("0") @QueryParam("page") final int offset,
50 50
                                      @DefaultValue("10") @QueryParam("size") final int limit,
51 51
                                      @QueryParam("refine") @DefaultValue("false") final boolean refine,
52
                                      @QueryParam("fields") final List<String> fields,
52
                                      @QueryParam("fields") final List<String> refineFields,
53
                                      @QueryParam("sf") final List<String> specialFacets,
53 54
                                      @QueryParam("fq") final List<String> fieldQueries,
54 55
                                      @QueryParam("format") final String format,
55 56
                                      @QueryParam("type") final String type,
56 57
                                      @Context final HttpServletRequest request) {
57 58

  
58
        return getResponseByEntity(query, extractEntity(type), offset, limit, format, request, refine, fields, fieldQueries);
59
        return getResponseByEntity(query, extractEntity(type), offset, limit, format, request, refine, refineFields, specialFacets, fieldQueries);
59 60
    }
60 61

  
61 62
    @GET
......
68 69
                                      @DefaultValue("0") @QueryParam("page") final int offset,
69 70
                                      @DefaultValue("10") @QueryParam("size") final int limit,
70 71
                                      @QueryParam("refine") @DefaultValue("false") final boolean refine,
71
                                      @QueryParam("fields") final List<String> fields,
72
                                      @QueryParam("fields") final List<String> refineFields,
73
                                      @QueryParam("sf") final List<String> specialFacets,
72 74
                                      @QueryParam("fq") final List<String> fieldQueries,
73 75
                                      @QueryParam("format") final String format,
74 76
                                      @Context final HttpServletRequest request) {
......
77 79
        //TODO do not allow q and keywords both - SWITCH back if needed
78 80
        //String simpleQuery = buildSimpleSearchQuery(RequestResponseHandler.Entity.PUBLICATION, keywords) ;
79 81
        String simpleQuery = buildSearchRequest(RequestResponseHandler.Entity.PUBLICATION, keywords, doi,sortBy, fieldQueries);
80
        return getResponseByEntity(simpleQuery, RequestResponseHandler.Entity.PUBLICATION, offset, limit, format, request, refine, fields, fieldQueries);
82
        return getResponseByEntity(simpleQuery, RequestResponseHandler.Entity.PUBLICATION, offset, limit, format, request, refine, refineFields, specialFacets, fieldQueries);
81 83

  
82 84
    }
83 85

  
......
117 119
                                  @DefaultValue("0") @QueryParam("page") int offset,
118 120
                                  @DefaultValue("10") @QueryParam("size") int limit,
119 121
                                  @QueryParam("refine") @DefaultValue("false") boolean refine,
120
                                  @QueryParam("fields") final List<String> fields,
122
                                  @QueryParam("fields") final List<String> refineFields,
123
                                  @QueryParam("sf") final List<String> specialFacets,
121 124
                                  @QueryParam("fq") final List<String> fieldQueries,
122 125
                                  @QueryParam("format") final String format,
123 126
                                  @Context HttpServletRequest request) {
124 127

  
125 128
        String simpleQuery = buildSearchRequest(RequestResponseHandler.Entity.DATASET, keywords, doi, sortBy, fieldQueries);
126
        return getResponseByEntity(simpleQuery, RequestResponseHandler.Entity.DATASET, offset, limit, format, request, refine, fields, fieldQueries);
129
        return getResponseByEntity(simpleQuery, RequestResponseHandler.Entity.DATASET, offset, limit, format, request, refine, refineFields, specialFacets, fieldQueries);
127 130
    }
128 131

  
129 132
    @GET
......
160 163
                                  @DefaultValue("0") @QueryParam("page") int offset,
161 164
                                  @DefaultValue("10") @QueryParam("size") int limit,
162 165
                                  @QueryParam("refine") @DefaultValue("false") boolean refine,
163
                                  @QueryParam("fields") final List<String> fields,
166
                                  @QueryParam("fields") final List<String> refineFields,
167
                                  @QueryParam("sf") final List<String> specialFacets,
164 168
                                  @QueryParam("fq") final List<String> fieldQueries,
165 169
                                  @QueryParam("format") final String format,
166 170
                                  @Context HttpServletRequest request) {
167 171

  
168 172
        String simpleQuery = buildSearchRequest(RequestResponseHandler.Entity.SOFTWARE, keywords, doi, sortBy, fieldQueries);
169
        return getResponseByEntity(simpleQuery, RequestResponseHandler.Entity.SOFTWARE, offset, limit, format, request, refine, fields, fieldQueries);
173
        return getResponseByEntity(simpleQuery, RequestResponseHandler.Entity.SOFTWARE, offset, limit, format, request, refine, refineFields, specialFacets, fieldQueries);
170 174
    }
171 175

  
172 176
    @GET
......
202 206
                                  @DefaultValue("0") @QueryParam("page") int offset,
203 207
                                  @DefaultValue("10") @QueryParam("size") int limit,
204 208
                                  @QueryParam("refine") @DefaultValue("false") boolean refine,
205
                                  @QueryParam("fields") final List<String> fields,
206
                                  @QueryParam("fq") final List<String> fieldQueries,
209
                                  @QueryParam("fields") final List<String> refineFields,
210
                                  @QueryParam("sf") final List<String> specialFacets,
211
                                   @QueryParam("fq") final List<String> fieldQueries,
207 212
                                  @QueryParam("format") final String format,
208 213
                                  @Context HttpServletRequest request) {
209 214

  
210 215
        String simpleQuery = buildSearchRequest(RequestResponseHandler.Entity.OTHER, keywords, doi, sortBy, fieldQueries);
211
        return getResponseByEntity(simpleQuery, RequestResponseHandler.Entity.OTHER, offset, limit, format, request, refine, fields, fieldQueries);
216
        return getResponseByEntity(simpleQuery, RequestResponseHandler.Entity.OTHER, offset, limit, format, request, refine, refineFields, specialFacets, fieldQueries);
212 217
    }
213 218

  
214 219
    @GET
......
241 246
                                  @DefaultValue("0") @QueryParam("page") int offset,
242 247
                                  @DefaultValue("10") @QueryParam("size") int limit,
243 248
                                  @QueryParam("refine") @DefaultValue("false") boolean refine,
244
                                  @QueryParam("fields") final List<String> fields,
249
                                  @QueryParam("fields") final List<String> refineFields,
250
                                  @QueryParam("sf") final List<String> specialFacets,
245 251
                                  @QueryParam("fq") final List<String> fieldQueries,
246 252
                                  @QueryParam("format") final String format,
247 253
                                  @Context HttpServletRequest request) {
248 254

  
249 255
        String simpleQuery = buildSearchRequest(RequestResponseHandler.Entity.PROJECT, keywords, fieldQueries);
250
        return getResponseByEntity(simpleQuery, RequestResponseHandler.Entity.PROJECT, offset, limit, format, request, refine, fields, fieldQueries);
256
        return getResponseByEntity(simpleQuery, RequestResponseHandler.Entity.PROJECT, offset, limit, format, request, refine, refineFields, specialFacets, fieldQueries);
251 257
    }
252 258

  
253 259

  
......
286 292
                                             @Context HttpServletRequest request)  {
287 293

  
288 294
        String fullQuery = builtEntity2EntityRelationQuery(RequestResponseHandler.Entity.PUBLICATION, "relprojectid", projectId, fieldQueries);
289
        return getResponseByEntity(fullQuery, RequestResponseHandler.Entity.PUBLICATION, offset, limit, format, request, false, null, fieldQueries);
295
        return getResponseByEntity(fullQuery, RequestResponseHandler.Entity.PUBLICATION, offset, limit, format, request, false, null, null,fieldQueries);
290 296
    }
291 297

  
292 298
    @GET
......
313 319
                                             @Context HttpServletRequest request)  {
314 320

  
315 321
        String fullQuery = builtEntity2EntityRelationQuery(RequestResponseHandler.Entity.DATASET, "relprojectid", projectId, fieldQueries);
316
        return getResponseByEntity(fullQuery, RequestResponseHandler.Entity.DATASET, offset, limit, format, request, false, null, fieldQueries);
322
        return getResponseByEntity(fullQuery, RequestResponseHandler.Entity.DATASET, offset, limit, format, request, false, null, null, fieldQueries);
317 323
    }
318 324

  
319 325

  
......
359 365
                                         @Context HttpServletRequest request)  {
360 366

  
361 367
        String fullQuery = builtEntity2EntityRelationQuery(RequestResponseHandler.Entity.SOFTWARE, "relprojectid", projectId, fieldQueries);
362
        return getResponseByEntity(fullQuery, RequestResponseHandler.Entity.SOFTWARE, offset, limit, format, request, false, null, fieldQueries);
368
        return getResponseByEntity(fullQuery, RequestResponseHandler.Entity.SOFTWARE, offset, limit, format, request, false, null, null,fieldQueries);
363 369
    }
364 370

  
365 371
    @GET
......
388 394
                                         @Context HttpServletRequest request)  {
389 395

  
390 396
        String fullQuery = builtEntity2EntityRelationQuery(RequestResponseHandler.Entity.OTHER, "relprojectid", projectId, fieldQueries);
391
        return getResponseByEntity(fullQuery, RequestResponseHandler.Entity.OTHER, offset, limit, format, request, false, null, fieldQueries);
397
        return getResponseByEntity(fullQuery, RequestResponseHandler.Entity.OTHER, offset, limit, format, request, false, null, null, fieldQueries);
392 398
    }
393 399

  
394 400
    @GET
......
399 405
                                     @DefaultValue("0") @QueryParam("page") final int offset,
400 406
                                     @DefaultValue("10") @QueryParam("size") final int limit,
401 407
                                     @QueryParam("refine") @DefaultValue("false") final boolean refine,
402
                                     @QueryParam("fields") final List<String> fields,
408
                                     @QueryParam("fields") final List<String> refineFields,
403 409
                                     @QueryParam("fq") final List<String> fieldQueries,
410
                                     @QueryParam("sf") final List<String> specialFacets,
404 411
                                     @QueryParam("format") final String format,
405 412
                                     @Context final HttpServletRequest request) {
406 413

  
407 414
        String simpleQuery = buildSearchRequest(RequestResponseHandler.Entity.DATASOURCE, keywords, fieldQueries);
408
        return getResponseByEntity(simpleQuery, RequestResponseHandler.Entity.DATASOURCE, offset, limit, format, request, refine, fields, fieldQueries);
415
        return getResponseByEntity(simpleQuery, RequestResponseHandler.Entity.DATASOURCE, offset, limit, format, request, refine, refineFields, specialFacets, fieldQueries);
409 416
    }
410 417

  
411 418
    @GET
......
440 447
                                       @DefaultValue("0") @QueryParam("page") final int offset,
441 448
                                       @DefaultValue("10") @QueryParam("size") final int limit,
442 449
                                       @QueryParam("refine") @DefaultValue("false") final boolean refine,
443
                                       @QueryParam("fields") final List<String> fields,
450
                                       @QueryParam("fields") final List<String> refineFields,
451
                                       @QueryParam("sf") final List<String> specialFacets,
444 452
                                       @QueryParam("fq") final List<String> fieldQueries,
445 453
                                       @QueryParam("format") final String format,
446 454
                                       @Context final HttpServletRequest request) {
447 455

  
448 456
        String simpleQuery = buildSearchRequest(RequestResponseHandler.Entity.ORGANIZATION, keywords, fieldQueries);
449
        return getResponseByEntity(simpleQuery, RequestResponseHandler.Entity.ORGANIZATION, offset, limit, format, request, refine, fields, fieldQueries);
457
        return getResponseByEntity(simpleQuery, RequestResponseHandler.Entity.ORGANIZATION, offset, limit, format, request, refine, refineFields, specialFacets, fieldQueries);
450 458
    }
451 459

  
452 460

  
......
485 493
                                                 @QueryParam("fq") final List<String> fieldQueries,
486 494
                                                 @Context HttpServletRequest request)  {
487 495
        String fullQuery = builtEntity2EntityRelationQuery(RequestResponseHandler.Entity.DATASOURCE, "relorganizationid", organizationid, fieldQueries);
488
        return getResponseByEntity(fullQuery, RequestResponseHandler.Entity.DATASOURCE, offset, limit, format, request, false, null, fieldQueries);
496
        return getResponseByEntity(fullQuery, RequestResponseHandler.Entity.DATASOURCE, offset, limit, format, request, false, null, null, fieldQueries);
489 497
    }
490 498

  
491 499
    @GET
......
512 520
                                              @QueryParam("fq") final List<String> fieldQueries,
513 521
                                              @Context HttpServletRequest request)  {
514 522
        String fullQuery = builtEntity2EntityRelationQuery(RequestResponseHandler.Entity.PUBLICATION, "relorganizationid", organizationid, fieldQueries);
515
        return getResponseByEntity(fullQuery, RequestResponseHandler.Entity.PUBLICATION, offset, limit, format, request, false, null, fieldQueries);
523
        return getResponseByEntity(fullQuery, RequestResponseHandler.Entity.PUBLICATION, offset, limit, format, request, false, null, null, fieldQueries);
516 524
    }
517 525

  
518 526
    @GET
......
540 548
                                                  @QueryParam("fq") final List<String> fieldQueries,
541 549
                                                  @Context HttpServletRequest request)  {
542 550
        String fullQuery = builtEntity2EntityRelationQuery(RequestResponseHandler.Entity.DATASET, "relorganizationid", organizationid, fieldQueries);
543
        return getResponseByEntity(fullQuery, RequestResponseHandler.Entity.DATASET, offset, limit, format, request, false, null, fieldQueries);
551
        return getResponseByEntity(fullQuery, RequestResponseHandler.Entity.DATASET, offset, limit, format, request, false, null, null,fieldQueries);
544 552
    }
545 553

  
546 554
    @GET
......
568 576
                                                 @QueryParam("fq") final List<String> fieldQueries,
569 577
                                                 @Context HttpServletRequest request)  {
570 578
        String fullQuery = builtEntity2EntityRelationQuery(RequestResponseHandler.Entity.PROJECT, "relorganizationid", organizationid, fieldQueries);
571
        return getResponseByEntity(fullQuery, RequestResponseHandler.Entity.PROJECT, offset, limit, format, request, false, null, fieldQueries);
579
        return getResponseByEntity(fullQuery, RequestResponseHandler.Entity.PROJECT, offset, limit, format, request, false, null, null, fieldQueries);
572 580
    }
573 581

  
574 582
    @GET
......
592 600
                                @DefaultValue("0") @QueryParam("page") final int offset,
593 601
                                @DefaultValue("10") @QueryParam("size") final int limit,
594 602
                                @QueryParam("refine") @DefaultValue("false") final boolean refine,
595
                                @QueryParam("fields") final List<String> fields,
603
                                @QueryParam("fields") final List<String> refineFields,
596 604
                                @QueryParam("fq") final List<String> fieldQueries,
597 605
                                @QueryParam("format") final String format,
598 606
                                @Context final HttpServletRequest request) {
599 607

  
600 608
        String simpleQuery = buildSearchRequest(RequestResponseHandler.Entity.PERSON, keywords, fieldQueries);
601
        return getResponseByEntity(simpleQuery, RequestResponseHandler.Entity.PERSON, offset, limit, format, request, refine, fields, fieldQueries);
609
        return getResponseByEntity(simpleQuery, RequestResponseHandler.Entity.PERSON, offset, limit, format, request, refine, refineFields, fieldQueries);
602 610
    }
603 611

  
604 612

  
......
679 687
    @Timed(value = "http.server.request.duration", extraTags = {"referer", "portal", "uri", "/rest/v2/api/reports"}, longTask = false)
680 688
    public Response fetchReport(@QueryParam("q") String keywords,
681 689
                                @QueryParam("refine") @DefaultValue("false") boolean refine,
682
                                @QueryParam("fields") final List<String> fields,
690
                                @QueryParam("fields") final List<String> refineFields,
683 691
                                @QueryParam("fq") final List<String> fieldQueries,
684 692
                                @QueryParam("type") final String type,
685 693
                                @QueryParam("format") final String format,
......
703 711
        logger.debug("fieldQueries " + fieldQueries);
704 712

  
705 713
        try {
706
            SearchResult sr = ((SearchServiceImpl)searchService).newSearch(fullQuery, Locale.getDefault().toString(), fields, fieldQueries,0, 0, format, transformer,null,false);
714
            SearchResult sr = ((SearchServiceImpl)searchService).newSearch(fullQuery, Locale.getDefault().toString(), refineFields, null, fieldQueries,0, 0, format, transformer,null,false);
707 715
            logger.debug("Total number of results " + sr.getTotal());
708 716

  
709 717

  
......
720 728
                    os.write(CSVResponseFormat.appendTitle(entity, special).getBytes());
721 729
                }
722 730
                try {
723
                    ((SearchServiceImpl)searchService).cursorSearch(fullQuery, fields, fieldQueries, format, transformer, os);
731
                    ((SearchServiceImpl)searchService).cursorSearch(fullQuery, refineFields, null, fieldQueries, format, transformer, os);
724 732

  
725 733
                } catch (SearchServiceException sse) {
726 734
                    os.write(("Fail to return report. " + sse.getMessage()).getBytes());
......
946 954
        String responseFormat = extractResponseFormat(format);
947 955

  
948 956
        try {
949
            SearchResult searchResult = ((SearchServiceImpl)searchService).newSearch(query, Locale.getDefault().toString(), null, fieldQueries, 0, 0, responseFormat, null, null, false);
957
            SearchResult searchResult = ((SearchServiceImpl)searchService).newSearch(query, Locale.getDefault().toString(), null, null, fieldQueries, 0, 0, responseFormat, null, null, false);
950 958
            return Response.status(Response.Status.OK).entity(APIResponseFormatter.createCountMeta(request, query, searchResult.getTotal(), responseFormat)).type(responseFormat).build();
951 959

  
952 960
        } catch (SearchServiceException sse) {
......
968 976
                        type(responseType).build();
969 977
            }
970 978

  
971
            SearchResult searchResult = ((SearchServiceImpl)searchService).newSearch(fullQuery, Locale.getDefault().toString(), null, fieldQueries, 0, 1, responseType, null, null, false);
979
            SearchResult searchResult = ((SearchServiceImpl)searchService).newSearch(fullQuery, Locale.getDefault().toString(), null, null, fieldQueries, 0, 1, responseType, null, null, false);
972 980

  
973 981
            if (searchResult.getSearchResults() == null || searchResult.getSearchResults().isEmpty() ||
974 982
                    searchResult.getSearchResults().size() == 0 || searchResult.getSearchResults().get(0) == null) {
......
984 992
        }
985 993
    }
986 994

  
987
    private Response getResponseByEntity(String fullQuery, RequestResponseHandler.Entity entity, int offset, int limit, String format, HttpServletRequest request, boolean refine, List<String> refineFields, List<String> fieldQueries) {
995
    private Response getResponseByEntity(String fullQuery, RequestResponseHandler.Entity entity, int offset, int limit, String format, HttpServletRequest request, boolean refine, List<String> refineFields, List<String> specialFacets, List<String> fieldQueries) {
988 996
        long startTime = System.nanoTime();
989 997
        Transformer transformer = extractTransformer(format, entity);
990 998
        boolean special = isSpecialFormat(format);
......
998 1006
        }
999 1007

  
1000 1008
        try {
1001
            SearchResult solrResults = ((SearchServiceImpl)searchService).newSearch(fullQuery, Locale.getDefault().toString(), refineFields, fieldQueries, offset, limit, responseType, transformer, null, false);
1009
            SearchResult solrResults = ((SearchServiceImpl)searchService).newSearch(fullQuery, Locale.getDefault().toString(), refineFields, specialFacets, fieldQueries, offset, limit, responseType, transformer, null, false);
1002 1010
            long estimatedTime = System.nanoTime() - startTime;
1003 1011
            logger.debug("Publications search time " + estimatedTime/1000000 +  " milliseconds");
1004 1012
            return Response.status(Response.Status.OK).entity(APIResponseFormatter.createEntitiesResponse(request, entity, fullQuery, fieldQueries, solrResults, refine, responseType, special, hasTitle)).type(responseType).build();
......
1107 1115
                        type(responseType).build();
1108 1116
            }
1109 1117

  
1110
            SearchResult searchResults = ((SearchServiceImpl)searchService).newSearchWithoutFieldQueries(fullQuery, Locale.getDefault().toString(), null, fieldQueries, 0, limit, responseType, null, null, false);
1118
            SearchResult searchResults = ((SearchServiceImpl)searchService).newSearchWithoutFieldQueries(fullQuery, Locale.getDefault().toString(), null, null, fieldQueries, 0, limit, responseType, null, null, false);
1111 1119

  
1112 1120
            if (searchResults.getSearchResults() == null || searchResults.getSearchResults().isEmpty() ||
1113 1121
                    searchResults.getSearchResults().size() == 0 || searchResults.getSearchResults().get(0) == null) {

Also available in: Unified diff