【发布时间】:2014-03-16 23:19:34
【问题描述】:
我正在改进使用 Solr 3.6 的现有搜索系统
我正在尝试使用以下功能提升搜索结果:
{!boost b=recip(sub(1,floor(strdist("someText",myField,jw))),1000000,1,1)}searchText
- searchText - 用户搜索的一些文本;
- myField - 自定义索引文档的字段,值可以为空或非空字符串;
简而言之,这个函数将myField的值不等于someText的所有搜索结果除以1000001分。这样,具有指定 myField 值的结果将按其原始分数排序。
因此,字段存在,值存在于字段中,但结果的分数也被除,结果在深处……
当我使用时:
fq=myField:[* TO *]
Solr 过滤掉字段值不是空字符串的结果。所以,被认出来了……
还有另一个遗留字符串字段。当我使用该字段应用我的函数时,一切正常。但是当我使用我的领域时它失败了。
您对可能出现的问题有任何想法吗?我应该寻找什么?
请帮忙。我已经花了很多时间没有成功,但我是 Solr 的新手,到目前为止还无法解决这个问题......
谢谢!
【问题讨论】:
-
myField和 legacy 字段的定义是什么? -
我已经解决了我的问题并发布了答案。无论如何谢谢! :) 看起来你有同样的假设。
标签: solr lucene solr-boost