Dismax请求处理程序



我使用solr按名称搜索一组数据(例如:"丹"或"乔·史密斯")。我想以另一个索引字段double_score(例如10.0或72.3)指定的顺序返回查询指定的结果(编辑:末尾带有通配符)。我目前有以下无法工作:

<!-- Note that the default search is on the field name -->
<requestHandler name="/scoresearch" class="solr.SearchHandler" default="true">
   <!-- <lst name="invariants">
          <str name="q">{!boost b=sum(double_score) defType=dismax v=$qq}</str>
        </lst> -->
        <lst name="defaults">
          <str name="defType">dismax</str>    
          <str name="echoParams">explicit</str>
      <int name="rows">10</int>
     <!-- <str name="qq"></str> -->
      <str name="qf">double_score</str>
      <str name="debug">true</str>
      <str name="q.alt">*:*</str>
    </lst>
</requestHandler>

如果我删除评论,那么搜索确实工作s.t.我所做的任何查询都被q.alt替换,然后由double_score的值增强。如果这没有取代q.alt,这将是期望的效果。

还请注意,虽然我还没有深入研究更有趣的可能性,例如标记名称,但我确实计划这样做。所以任何可能的建议/解决方案都不应该排除这一点。

我觉得你把它弄得太复杂了…试试这个:

<lst name="defaults">
    <str name="defType">edismax</str>
    <str name="qf">name</str>
    <str name="q.alt">*:*</str>
    <str name="bf">double_score</str>
</lst>

Try

http://localhost:8983/solr/select/?q=Joe Smith&qf=double_score^1.2 description

这意味着:

  1. 我在找Joe Smith
  2. 我正在搜索双分数描述

其中description将是存储要搜索的文本的字段。

确保description具有数据类型text,带

stored="true" (in case you want to return snippets)
indexed="true" (so it is searchable)

文本数据类型使用过滤技术(词干提取、标记化),而字符串数据类型则这样处理它。参见如何确定SOLR索引的字段类型?

相关内容

  • 没有找到相关文章