2017-03-09 87 views
0

我正在使用Licene.net。Lucene提高其他領域的效果

我在索引中有兩個字段的文檔:文本標籤

我需要查詢,將一些價值文本場,之後提升的結果通過標籤現場進行搜索。

換句話說,我選擇使用文本字段的文檔並通過標記字段對它們進行排序(如果標記字段中有任何匹配,則將該文檔在搜索結果中提起)。

如何構建該查詢?

+0

你的意思是你想要一個包含某些特殊標籤的文檔的更高分數而不是那些? –

回答

0

如果您希望得到的文檔的分數高於那些沒有的分數的文檔,您可以在查詢中添加這個作爲可選的SHOULD子句。

BooleanQuery bq = new BooleanQuery(); 
bq.add(/* your text query */, Occur.MUST); 
bq.add(new TermQuery(new Term("Key", key)), Occur.SHOULD); 

滿足SHOULD條款的結果將有更高的分數。

您也可以在第二次查詢時使用setBoost(),以使其影響比第一次更高。