Solr Query - ошибка HTTP 400 неопределенный текст поля

В моем запросе solr у меня нет проблем на одном сервере, а на другом возникает ошибка error { "msg":"undefined field text", "code":400} для определенного сценария. Я сослался на Solr Query - ошибка HTTP 404, неопределенный текст поля и многие другие ссылки. Но я не смог найти причину, по которой он так себя ведет.

q=title:'food' - возвращает результат

q=title:"food safety" - возвращает результат

q=title:'food safety' - ошибка { "msg":"неопределенный текст поля", "код":400}

Заранее спасибо.

1 ответ

Решение

Использование debugQuery=true чтобы понять, как выглядит ваш запрос после разбора.

q=title:'food safety'

После разбора запроса

"parsedquery_toString":"title:food text:safety"

Solr поиск термина "еда" в поле заголовка title:food и безопасность в default поле называется текст. text:safety

Поскольку для поиска используется поле по умолчанию (в данном случае текст), поле text должны быть четко определены в файле схемы.

Проверьте, измените ли ваш файл схемы соответственно. Пример определения поля для справки.

<fieldType name="text" class="solr.TextField" positionIncrementGap="100">
      <analyzer type="index">
        <tokenizer class="solr.StandardTokenizerFactory"/>
        <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" />
        <!-- in this example, we will only use synonyms at query time
        <filter class="solr.SynonymFilterFactory" synonyms="index_synonyms.txt" ignoreCase="true" expand="false"/>
        -->
        <filter class="solr.LowerCaseFilterFactory"/>
      </analyzer>
      <analyzer type="query">
        <tokenizer class="solr.StandardTokenizerFactory"/>
        <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" />
        <filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true"/>
        <filter class="solr.LowerCaseFilterFactory"/>
      </analyzer>
    </fieldType>
Другие вопросы по тегам