Lucene:如何增强某些特定领域

问题描述 投票:10回答:3

就我而言,文档有两个字段,例如,“标题”和“视图”。 “视图”代表人们访问此文档的次数。例如:“标题”:“ iphone”,“观看次数”:“ 10”。我必须制定一项策略,为视图分配一些权重,例如,相关性分数是根据score(title)* 0.8 + score(views)* 0.2计算得出的。 lucene可以做到吗?我想知道是否存在与此问题相关的算法。

lucene search-engine
3个回答
10
投票

这是您可以执行的操作:

Query titleQuery, viewsQuery;

titleQuery.setBoost(0.8);
viewsQuery.setBoost(0.2);
BooleanQuery query = new BooleanQuery();
query.add(titleQuery, Occur.MUST); // or Occur.SHOULD if this clause is optional
query.add(viewsQuery, Occur.SHOULD); // or Occur.MUST if this clause is required

// use query to search documents

分数将与0.8*score(titleQuery) + 0.2*score(viewsQuery)成比例(与乘法常数成正比。)>

要利用views字段,您可能需要使用ValueSourceQuery


8
投票

您可以通过3种方式进行增强。根据您的需要,您可能需要组合使用


0
投票

如果您在2020年之后到达这里,在Lucene 8.5.2中。

© www.soinside.com 2019 - 2024. All rights reserved.