具有自定义索引字符串字段的Boost函数不起作用。 Solr 3.6

时间:2014-03-16 23:19:35

标签: solr lucene solr-boost

我正在改进使用Solr 3.6的现有搜索系统

我尝试使用以下功能提升搜索结果:

{!boost b=recip(sub(1,floor(strdist("someText",myField,jw))),1000000,1,1)}searchText
  1. searchText - 用户搜索的一些文字;
  2. myField - 自定义索引文档的字段,值cam为空或非空字符串;
  3. 简而言之,此功能除以 1000001 所有搜索结果的分数,其中 myField 的值不等于 someText 。这样,指定 myField 的值的结果按其原始分数排在最前面。

    因此,该字段在那里,该值存在于该字段中,但结果的得分也被划分,结果在某个深处......

    当我使用时:

    fq=myField:[* TO *]
    

    Solr过滤掉字段值不为空字符串的结果。所以,它被认可......

    还有另一个遗留字符串字段。当我使用该字段应用我的函数时,一切都按预期工作。但是当我使用我的领域时它会失败。

    您对可能出现的问题有什么看法吗?我应该寻找什么?

    请帮忙。我已经花了很多时间没有成功,但我是Solr的新手,到目前为止还无法解决这个问题......

    谢谢!

1 个答案:

答案 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”,现在一切正常:)