lucene中的计数和子计数

lucene中的计数和子计数,lucene,Lucene,我在lucene中的字段是产品名称、类型和子类型 我正在用abc查询类型,这将导致我得到类型为abc的产品。 这种abc类型的产品有pqr和xyz子类型 我可以使用TopCoreDocCollector.getTotalHits()获取xyz类型的总计数 但我想得到sub_类型的计数。即pqr和xyz 我怎样才能得到它 任何答复都会对我大有帮助 提前感谢。一种方法是基于abc查询创建一个筛选器,然后使用该筛选器约束子类型查询的结果 IndexSearcher searcher = // sear

我在lucene中的字段是产品名称、类型和子类型

我正在用abc查询类型,这将导致我得到类型为abc的产品。 这种abc类型的产品有pqr和xyz子类型

我可以使用TopCoreDocCollector.getTotalHits()获取xyz类型的总计数

但我想得到sub_类型的计数。即pqr和xyz

我怎样才能得到它

任何答复都会对我大有帮助


提前感谢。

一种方法是基于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来索引数据。