通过字段值的存在提高Lucene的搜索结果

时间:2017-09-19 15:55:59

标签: lucene lucene.net kentico

我通过Kentico使用Lucene.net。我试图提高在某个领域具有特定价值的结果。例如:

myfield:"myvalue"^2

不幸的是,这被视为搜索字词并且无论如何都会改变分数(通过tfidf等)。

有没有办法根据值的存在来提升结果,但不包括该值作为搜索词呢?

更新

所以我想提高仅在该字段中包含该值的记录的分数,它不是任何方式的搜索值。

如果失败了,因为我实际上使用了两个索引,我可以对特定索引应用提升吗?例如,index-1中的项目总得分略高于index-2

1 个答案:

答案 0 :(得分:0)

如果您在“搜索条件”中添加了此字段,那么在幕后它会为该值添加“+”,因此lucene正在渲染:

+(myfield:"myvalue"^2)

然后需要该字段。

我相信(您必须测试)如果您添加智能搜索过滤器,将值设置为myfield:"myValue"^2然后将“过滤器是有条件的”设置为false,这应该在您的字段中正确添加到lucene来提升,然后用一些<div style="display:none"></div>包裹过滤器来隐藏它。

指向你的结果并查看它是否成功!