【问题标题】:Why is solr returning result with only exact search?为什么 solr 只返回精确搜索的结果?
【发布时间】:2016-01-07 06:23:39
【问题描述】:

我创建了一个核心,secondCore{id, resid, title, name, cat, role, exp} 考虑一个样本数据:{"id" : "11","resid" : 384,"title" : "perl and java developer","name" : "appnede new name","cat" : "22,11","role" : "new role","exp" : 1 }。 当我搜索 title:perl 时,我得到 0 结果。只有当我搜索 title:"perl and java developer"title:perl* 时,我才会得到提及的结果。 回应:

<response>

<lst name="responseHeader">
  <int name="status">0</int>
  <int name="QTime">2</int>
  <lst name="params">
    <str name="indent">true</str>
    <str name="q">title:perl*</str>
    <str name="_">1444371225114</str>
    <str name="wt">xml</str>
  </lst>
</lst>
<result name="response" numFound="1" start="0">
  <doc>
    <str name="id">11</str>
    <arr name="resid">
      <long>384</long>
    </arr>
    <arr name="title">
      <str>perl and java developer</str>
    </arr>
    <arr name="name">
      <str>appnede new name</str>
    </arr>
    <arr name="cat">
      <long>2211</long>
    </arr>
    <arr name="role">
      <str>new role</str>
    </arr>
    <arr name="exp">
      <long>1</long>
    </arr>
    <long name="_version_">1514531870450122752</long></doc>
</result>
</response>

另外,为什么响应在 arr &lt;arr name="role"&gt;&lt;str&gt;new role&lt;/str&gt;&lt;/arr&gt; 中?我想要它在&lt;str name="role"&gt;new role&lt;/str&gt; 和其他文件中。怎么做?我正在使用 solr 5.3.0。

【问题讨论】:

  • 请加你schema.xml
  • @alexf Solr 5.3.0 隐式管理managed-schema 文件,这是我后来才知道的。更改我的 schema.xml 没有效果。我在下面发布了我的答案,如果需要,请阅读和修改。 :)

标签: search solr lucene information-retrieval


【解决方案1】:

解决了上述问题。我已将字段类型更改为text_general_new,这是一个类似于text_general 的新字段类型,并进行了一些自定义。
或者,您可以将text_generalmultiValued="false" 一起使用。这些更改需要在managed-schema 文件中完成。这是 solr 使用的隐式模式文件。

但作为初学者,我在这里还有一个疑问。 Solr 隐式使用托管模式作为 schema.xml 的替换,但它从哪里知道 JSON 文件中的字段?我的意思是,它已经为我的 JSON 中存在的每个字段定义了字段。它是怎么知道的?哪个文件(带有位置)对此负责?

【讨论】:

    【解决方案2】:

    我认为您已将字段定义为字符串而不是文本。字符串字段完全匹配,而文本字段将为您提供所需的结果。

    也请查看其他答案:https://stackoverflow.com/a/7187441/147306

    【讨论】:

    • 感谢您的链接。 :) @jsp
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-05-24
    • 1970-01-01
    • 1970-01-01
    • 2011-02-07
    • 2012-04-30
    • 1970-01-01
    • 2016-02-27
    相关资源
    最近更新 更多