2017-03-09 77 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(),以使其影响比第一次更高。