2011-04-14 83 views
0

lucene中的我的字段是product_name,type和sub_types。lucene中的計數和子計數

我用abc查詢類型,這導致我產品的類型是abc。 此abc類型的產品具有sub_types作爲pqr和xyz。

我可以使用TopScoreDocCollector.getTotalHits()獲取xyz類型的總數。

但我想要得到sub_types的計數。即。 pqr和xyz。

我該如何得到它?

任何回覆對我來說都會很有幫助。

在此先感謝。

回答

1

一種方法是根據您的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來索引您的數據。