我通过Kentico使用Lucene.net。我试图提高在某个领域具有特定价值的结果。例如:
myfield:"myvalue"^2
不幸的是,这被视为搜索字词并且无论如何都会改变分数(通过tf
和idf
等)。
有没有办法根据值的存在来提升结果,但不包括该值作为搜索词呢?
更新
所以我想提高仅在该字段中包含该值的记录的分数,它不是任何方式的搜索值。
如果失败了,因为我实际上使用了两个索引,我可以对特定索引应用提升吗?例如,index-1中的项目总得分略高于index-2
答案 0 :(得分:0)
如果您在“搜索条件”中添加了此字段,那么在幕后它会为该值添加“+”,因此lucene正在渲染:
+(myfield:"myvalue"^2)
然后需要该字段。
我相信(您必须测试)如果您添加智能搜索过滤器,将值设置为myfield:"myValue"^2
然后将“过滤器是有条件的”设置为false,这应该在您的字段中正确添加到lucene来提升,然后用一些<div style="display:none"></div>
包裹过滤器来隐藏它。
指向你的结果并查看它是否成功!