我正在改进使用Solr 3.6的现有搜索系统
我尝试使用以下功能提升搜索结果:
{!boost b=recip(sub(1,floor(strdist("someText",myField,jw))),1000000,1,1)}searchText
简而言之,此功能除以 1000001 所有搜索结果的分数,其中 myField 的值不等于 someText 。这样,指定 myField 的值的结果按其原始分数排在最前面。
因此,该字段在那里,该值存在于该字段中,但结果的得分也被划分,结果在某个深处......
当我使用时:
fq=myField:[* TO *]
Solr过滤掉字段值不为空字符串的结果。所以,它被认可......
还有另一个遗留字符串字段。当我使用该字段应用我的函数时,一切都按预期工作。但是当我使用我的领域时它会失败。
您对可能出现的问题有什么看法吗?我应该寻找什么?
请帮忙。我已经花了很多时间没有成功,但我是Solr的新手,到目前为止还无法解决这个问题......
谢谢!
答案 0 :(得分:0)
我一直在问人们,幸运的是,我已经解决了我的问题:)
所以问题出在 schema.xml 中的字段声明中。 遗留字段的声明如下:
<field name="searchText" type="string" indexed="true" stored="true" multiValued="false"/>
和我的字段的声明如下:
<field name="myField" type="text" indexed="true" stored="true" multiValued="false"/>
这就是为什么我的助推功能不起作用的原因。 所以我改为输入“string”,现在一切正常:)