lucene - 在构建索引时提升 Lucene 术语

标签 lucene indexing synonym

在创建索引时(而不是在查询时),是否可以确定特定术语比其他术语更重要?

以同义词过滤器为例:
文档 1:“这是一辆不错的车”
文档 2:“这是一辆不错的车”

我想将术语“车辆”添加到第一个文档,将术语“汽车”添加到第二个文档,
但我希望如果稍后使用单词 car 查询索引,那么第一个文档的得分将高于第二个文档,如果查询车辆,则相反。

在将字段添加到各自的文档之前调用 setBoost 会成功吗?

或者我应该将同义词添加到不同的字段名称中?

或者我是从错误的角度看这个?

谢谢

最佳答案

在归档上设置 boost 会影响该字段中的所有术语,因此这不适用于您的情况。

但是它应该可以使用 Lucene 有效负载(可以为每个术语设置的字节数组)。您可以使用它们来设置特定于术语的提升(例如,文档 1 的车辆为 0.5)。然后你将实现你自己的 Similarity并覆盖 scorePayload()解码该提升然后使用 PayloadTermQuery 的方法这允许您根据该术语的有效负载中的 Boot 为分数做出贡献。

关于lucene - 在构建索引时提升 Lucene 术语,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8880396/

相关文章:

parsing - 单词 "lexer"是单词 "parser"的同义词吗?

java - 带日期参数的 Lucene 搜索

java - 如何在 java 中配置和使用 KStem?

c# - 帮助搜索引擎架构 .NET C#

lucene - Luke 说我的 Lucene 索引目录无效

mysql - 使用唯一的多列索引表的最佳方法?

arrays - PostgreSQL 索引 JSONB 数组

mysql - 导出带有FTS索引的MySQL数据库

solr - solr中的多词同义词

r - 在 R 中识别和分组同义词