0

我正在使用浏览器中的以下查询尝试 Solr的MoreLikeThis功能:

http://localhost:8983/solr/gettingstarted_shard1_replica1/select?qt=mlt&q=id:31&mlt=true&mlt.fl=firstName,lastName&mlt.mindf=1&mlt.mintf=1&mlt.count=10

哪个有效,但响应如下所示:

<response>
<lst name="responseHeader">
         ... //removed for brevity
</lst>
<result name="response" numFound="1" start="0" maxScore="1.0">
   <doc>
      <str name="id">31</str>
      <str name="firstName">Alex Luis Armstrong</str>
      <str name="lastName">Major Wolf</str>
      <long name="_version_">1534338957920174080</long>
   </doc>
</result>
<lst name="moreLikeThis">
   <result name="31" numFound="4" start="0" maxScore="0.419522">
      <doc>
         <str name="id">32</str>
         <float name="score">0.419522</float>
      </doc>
      <doc>
         <str name="id">33</str>
         <float name="score">0.0254616</float>
      </doc>   
   </result>
</lst>
</response>

为什么id 32 和 33 的结果中没有返回 and firstNamelastName

字段类型: 在此处输入图像描述 在此处输入图像描述 在此处输入图像描述

4

2 回答 2

1

实际上我不确定发生了什么,但我建议在两个地方进行调查。

  1. 在您的查询字符串中,我看到有一个参数qt=mlt。指定的请求处理程序或查询类型参数 ( solrconfig.xml) 可以覆盖您的参数。所以我建议只删除qt参数并尝试添加mlt.match.include=true. 此参数指定响应是否应包含匹配的文档。
  2. schema.xml特别是我建议发布声明firstNamelastName声明的部分。
于 2016-05-17T08:05:11.507 回答
0

使用参数指定要返回的字段,就像使用典型(非 mlt)查询一样fl

mlt.fl参数仅指示 Solr 仅考虑具有相似firstNamelastName字段的文档。

如果您希望这些字段也返回,请传递...&fl=firstName,lastName&....

于 2016-09-10T02:11:33.460 回答