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}

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


person Naga    schedule 23.01.2017    source источник


Ответы (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>
person Vinod    schedule 23.01.2017
comment
Я могу немного опоздать, но может ли кто-нибудь сказать мне причину возврата правильных результатов одним сервером? Я столкнулся с той же проблемой, и один из узлов возвращает правильные результаты (правильно анализируя запрос), тогда как все остальные ведут себя по-разному. Я имею в виду, что если это ошибка поискового запроса, то она должна была дать сбой для всех узлов, верно? - person Tapan Vaishnav; 10.08.2018