首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Dismax请求处理程序

Dismax请求处理程序
EN

Stack Overflow用户
提问于 2011-09-15 22:05:12
回答 2查看 2.4K关注 0票数 0

我正在使用solr按名称搜索一组数据(例如"Dan“或"Joe Smith")。我希望以另一个索引字段double_score指定的顺序(例如10.0或72.3)返回查询指定的结果(编辑:末尾带有通配符)。我目前有以下完全不起作用的东西:

代码语言:javascript
复制
<!-- 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>

如果我删除了评论,那么搜索就会起作用。无论我做什么查询,都会被q.alt替换,然后由double_score的值提升。如果这不能取代q.alt,那就是我们想要的效果。

还要注意,虽然我还没有深入研究更有趣的可能性,比如对名称进行标记化,但我确实计划这样做。因此,任何可能的建议/解决方案都不应排除这一点。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-09-16 06:33:51

我觉得你把事情复杂化了.试试这个:

代码语言:javascript
复制
<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>
票数 1
EN

Stack Overflow用户

发布于 2011-09-16 01:17:24

试一试

代码语言:javascript
复制
http://localhost:8983/solr/select/?q=Joe Smith&qf=double_score^1.2 description

这意味着:

  1. 我正在寻找Joe Smith
  2. 我正在搜索字段double-score和description

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

确保描述的数据类型为text

代码语言:javascript
复制
stored="true" (in case you want to return snippets)
indexed="true" (so it is searchable)

text数据类型使用过滤技术(词干、标记化),而string数据类型就是这样处理的。请参阅How to determine field-type for SOLR indexing?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7432163

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档