Как получить facet.только результаты запроса, используя solrj?

#faceted-search #facet #solrj #solr

#фасетный поиск #фасет #solrj #solr

Вопрос:

Я пытаюсь получить результаты фасетного запроса, используя solrj, но, похоже, не имеет значения, добавляю я фасетный запрос или нет. Я все равно получаю тот же список документов.

Итак, этот запрос возвращает тот же список документов…

   query.setQuery(searchString);
  query.setFacet(true);
  query.addFacetField("CATNAME_STR");
  query.addFacetQuery("CATNAME_STR:"   facetName); 
  

…с помощью этого запроса

   query.setQuery(searchString);
  query.setFacet(true);
  query.addFacetField("CATNAME_STR");
  

Единственное отличие в том, что я могу получить количество документов, соответствующее фасетному запросу, с response.getFacetQuery();

Я ожидал, что это будет работать как

 http://localhost:8983/solr/select/?q=*:*amp;version=2.2amp;start=0amp;rows=10amp;indent=onamp;facet=onamp;facet.field=CATNAME_STRamp;fq=CATNAME_STR:Erasmus
  

Есть идеи?

Спасибо.

Кстати, я использую Solr версии 3.1.0 и solr-core-3.1.0

Комментарии:

1. Можете ли вы запустить fiddler или что-то еще, чтобы увидеть, как выглядит фактический запрос к solr?

2. @Aaron D — Это кажется удобным инструментом, но есть ли его эквивалент в Linux. Также Firebug дает довольно хорошее представление и о заголовках.

Ответ №1:

Как выясняется, fq=CATNAME_STR:Erasmus не означает query.addFacetQuery("CATNAME_STR:Erasmus") , что вместо query.addFilterQuery("CATNAME_STR:Erasmus")