MoreLikeThis не возвращает все поля похожих документов.

Я пробую использовать функцию 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>

Почему firstName и lastName не возвращаются в результатах для идентификаторов 32 и 33?

Типы полей: введите здесь описание изображения введите здесь описание изображения введите здесь описание изображения


person Songo    schedule 15.05.2016    source источник
comment
где вы можете найти решение?   -  person dev009    schedule 07.02.2020


Ответы (2)


На самом деле я не уверен в том, что происходит, но есть два места, где я предлагаю провести расследование.

  1. в вашей строке запроса я вижу параметр qt=mlt. Указанный обработчик запроса или параметр типа запроса (solrconfig.xml) может переопределить ваши параметры. Поэтому я предлагаю просто удалить параметр qt и попробовать добавить mlt.match.include=true. Этот параметр указывает, должен ли ответ включать соответствующий документ.
  2. schema.xml, в частности, я предлагаю опубликовать часть, где объявлены firstName и lastName.
person freedev    schedule 17.05.2016

Укажите поля, которые вы хотите вернуть, как и в обычном (не MLT) запросе, используя параметр fl.

Параметр mlt.fl просто указывает Solr рассматривать только документы с похожими полями firstName и lastName.

Если вы хотите, чтобы эти поля также возвращались, передайте ...&fl=firstName,lastName&....

person Peter Dixon-Moses    schedule 10.09.2016