Lucene:如何提升某些特定领域

标签 lucene search-engine

就我而言,文档有两个字段,例如“标题”和“ View ”。 “views”代表人们访问此文档的次数。喜欢:“标题”:“iphone”,“意见”:“10”。
我必须制定一个策略,为 View 分配一些权重,例如相关性分数由 score(title)*0.8+score(views)*0.2 计算。 lucene可以做到这一点吗?我想知道是否有一些与这个问题相关的算法。

最佳答案

您可以这样做:

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 .

关于Lucene:如何提升某些特定领域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9829161/

相关文章:

python - 全文搜索和 Python

seo - 推广网站

在 Lucene 中为包含多个数字的文本建立索引

java - 从 Lucene 索引中获取最高频率的术语

python - Lucene 和 Django 内存有限

php - 在 Sphinx 0.9.9 中搜索多个 < 或 > 失败

search-engine - 了解召回率和精度

search - 为什么大约 1M 文档的搜索性能很慢 - 如何扩展应用程序?

java - 在搜索引擎中显示结果(无 MySQL)

search - 如何向搜索引擎隐藏某些文本?