3
使用Lucene的查詢解析器,可以通過附加「^ n」來提高術語(使它們在搜索結果中加權)。 「apple^5 pie」將會賦予「蘋果」這個詞五倍的重要性。使用API構建查詢時可以這樣做嗎?請注意,我不想增加字段或文檔,而是增加字段中的單個字詞。使用Lucene的API,我可以提升條款嗎?
使用Lucene的查詢解析器,可以通過附加「^ n」來提高術語(使它們在搜索結果中加權)。 「apple^5 pie」將會賦予「蘋果」這個詞五倍的重要性。使用API構建查詢時可以這樣做嗎?請注意,我不想增加字段或文檔,而是增加字段中的單個字詞。使用Lucene的API,我可以提升條款嗎?
您只需要使用Query
類的setBoost(float)
方法。
例如
TermQuery tq1 = new TermQuery(new Term("text", "term1"));
tq1.setBoost(5f);
TermQuery tq2 = new TermQuery(new Term("text", "term2"));
tq2.setBoost(0.8f);
BooleanQuery query = new BooleanQuery();
query.add(tq1, Occur.SHOULD);
query.add(tq2, Occur.SHOULD);
這相當於解析查詢text:term1^5 text:term2^0.8
。
謝謝!現在爲什麼我找不到......我發現的所有內容都是文檔提升和字段提升。現在我不得不提問的時候覺得很蠢。但是,謝謝! – Frungi
-1使OP感到啞巴。 –
這個API不適用於lucene 6 ..你必須環繞boostquery?有點浪費?你知道其他方式嗎? –