Я не получаю совпадения на своих многозначных полях - PullRequest
0 голосов
/ 10 октября 2011

В моей схеме есть несколько многозначных полей, но при поиске по терминам, которые должны давать результаты из этих полей, результаты не возвращаются.

Например, в моей схеме есть многозначное поле, подобное этому:

<field name="tag" type="text_general" indexed="true" stored="true" multiValued="true"/>

Когда я выполняю поиск по тегу с таким запросом ...

{!dismax q.op=AND}test

Я получаю результаты с «test» в однозначных полях, но не в многозначных. Я сбрасываю результаты, полученные при поиске, чтобы проверить, что хранится.

(matches when I search "test")
name: TEST 4
description: i match the query "test"
year: 2010
id: 61

(does not match when I search "test")
name: BEST 4
description: i do not match the query
year: 2010
id: 68
tags: (array)
  0:test
  1:test2
  2:i'm a test

Мне не удалось найти похожие проблемы с поиском, поэтому я чувствую, что, должно быть, что-то пропустил. Кто-нибудь может указать мне правильное направление?

1 Ответ

1 голос
/ 10 октября 2011

Включены ли теги в список доступных для поиска полей?
Какие поля вы ищете?возможно, вы захотите добавить теги.

Поскольку вы используете defType в качестве dismax, вы можете попробовать передать qf = теги в URL, чтобы проверить, возвращается ли документ с именем BEST 4 с результатами.

Пример записи solrconfig.xml для поиска по имени, описанию и тегам -

<requestHandler name="dismax" class="solr.SearchHandler">
   <lst name="defaults">
     <str name="echoParams">explicit</str>
     <str name="defType">dismax</str>
     <str name="qf">
        name description tags
     </str>
     <str name="q.alt">*:*</str>
     <str name="rows">10</str>
     <str name="fl">*,score</str>
   </lst>
</requestHandler>

используйте URL как

q=test&qt=dismax
...