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>