Solr查询 - 未正确匹配文本

时间:2016-02-22 09:34:14

标签: apache solr lucene

我有这些数据:

{
    "id": "maxtor",
    "compName_s": "Maxtor Corporation",
    "address_s": "920 Disc Drive Scotts Valley, CA 95066",
    "_version_": 1526862455621288000
  }

当我写这篇文章时:

  

的solr /型芯/选择Q = compName_s%3A *迈拓*&安培;重量= XML&安培;缩进=真安培; HL =真安培; hl.fl = compName_s&安培; hl.simple.pre =安培; hl.simple.post =<%2Fem>

返回:

<response>
<lst name="responseHeader">
<int name="status">0</int>
<int name="QTime">1</int>
<lst name="params">
<str name="q">compName_s:*Maxtor*</str>
<str name="hl">true</str>
<str name="hl.simple.post"></em></str>
<str name="indent">true</str>
<str name="hl.fl">compName_s</str>
<str name="wt">xml</str>
<str name="hl.simple.pre"><em></str>
</lst>
</lst>
<result name="response" numFound="1" start="0">
<doc>
<str name="id">maxtor</str>
<str name="compName_s">Maxtor Corporation</str>
<str name="address_s">920 Disc Drive Scotts Valley, CA 95066</str>
<long name="_version_">1526862455621287937</long>
</doc>
</result>
<lst name="highlighting">
<lst name="maxtor">
<arr name="compName_s">
<str><em>Maxtor Corporation</em></str>
</arr>
</lst>
</lst>
</response>

一切都没问题,但是,当我尝试这个时:

  

的solr /型芯/选择Q = compName_s%3AMaxtor&安培;重量= XML&安培;缩进=真安培; HL =真安培; hl.fl = compName_s&安培; hl.simple.pre =安培; hl.simple.post = LT;% 2Fem&GT;

(compName_s:* Maxtor * to compName_s:Maxtor)

返回:

<response>
<lst name="responseHeader">
<int name="status">0</int>
<int name="QTime">0</int>
<lst name="params">
<str name="q">compName_s:Maxtor</str>
<str name="hl">true</str>
<str name="hl.simple.post"></em></str>
<str name="indent">true</str>
<str name="hl.fl">compName_s</str>
<str name="wt">xml</str>
<str name="hl.simple.pre"><em></str>
</lst>
</lst>
<result name="response" numFound="0" start="0"></result>
<lst name="highlighting"/>
</response>

我想要归还:

<lst name="highlighting">
<lst name="maxtor">
<arr name="compName_s">
<str><em>Maxtor</em> Corporation</str>
</arr>
</lst>
</lst>

(我想只获得“迈拓”)

1 个答案:

答案 0 :(得分:0)

您希望xml响应如下所示

<lst name="highlighting">
<lst name="maxtor">
<arr name="compName_s">
<str><em>Maxtor</em> Corporation</str>
</arr>
</lst>
</lst>

即使您的数据不匹配,或者您没有得到任何结果。

然后在这种情况下你需要挖掘solr的代码 在哪里可以修改它的反应以突出显示。

目前它返回响应

<lst name="highlighting"/>

因为它没有在结果集中找到数据,所以其他高亮度标签没有进入画面。

对于其余标签,请检查源代码,并检查他们如何返回响应,并检查是否可以根据您的要求修改相同的响应。