Подсчет и подсчет в люцене - PullRequest
0 голосов
/ 14 апреля 2011

Моими полями в lucene являются product_name, type и sub_types.

Я запрашиваю тип с abc, это приводит меня к продуктам с типом abc.Продукты этого типа abc имеют подтипы pqr и xyz.

Я могу получить общее количество типов xyz, используя TopScoreDocCollector.getTotalHits ().

Но я хочу получить количество подтипов.то есть.PQR и XYZ.

Как я могу получить это?

Любой ответ будет очень полезным для меня.

Заранее спасибо.

1 Ответ

1 голос
/ 15 мая 2011

Один из способов сделать это - создать фильтр на основе вашего запроса abc, а затем использовать этот фильтр для ограничения результатов для запросов подтипа.

IndexSearcher searcher = // searcher to use
int nDocs = 100; // number of docs to retrieve
QueryParser parser = // query parser to use

Query typeQuery = parser.parse("type:abc");
Filter f = CachingWrapperFilter(new QueryWrapperFilter(typeQuery));
Query subtypeQuery = parser.parse("sub_type:xyz");
TopDocs results = searcher.search(subtypeQuery, f, nDocs);

Еще одна мысль: если вы знаете,-перед тем, какой подтип вас интересует, вы можете просто добавить в запрос и тип, и подтип: +type:abc +sub_type:xyz.

Наконец, вы можете рассмотреть возможность использования Solr для индексации ваших данных, если у вас есть такие запросы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...