是否可以根据字段值在索引阶段提升文档?
我正在索引从数据库中提取的文本字段。我想提升较短的结果而不是较长的结果。所以 boost 的值应该取决于文本字段的长度。
这是改变标准 SOLR 行为所必需的,在我的情况下,该行为倾向于首先返回具有多个匹配项的文档。
考虑到我有一个存储文档长度的字段,我在索引时需要的查询中的等价物是:
q={!boost b=sqrt(length)}text:abcd
示例:我在数据库中有两个项目:
ABCDEBCE
ABCD
即使另一个项目包含两次搜索查询,我也总是希望获得ABCD
第一个查询。'BC'
该问题的另一个解决方案是能够“关闭”在查询时对多个匹配项进行更高评分的功能。也不知道能不能...
在索引时执行此操作很重要,因为我运行 SOLR 的硬件不是太强大,并且尝试通过 OutOfMemory 异常来提高查询时间返回。(即使我可以解决 java 内存增加的问题,我也更愿意为了安全起见并以最有效的方式实现索引。)