Мы модернизировались от Solr 3.6 до Solr 4.0. К сожалению, поведение, связанное с извлечением документа из индекса по уникальному ключу, очевидно, изменилось.Solr 4.0 Поиск в строковом поле
В Solr 3.6 Следующий запрос возвращает один документ:
key:conf/socc/AscottS09
Но при использовании Solr 4.0 с той же коллекции документов (Переиндексирован) пустой список возвращается результат. Похоже, что Solr 4.0 обрабатывает/анализирует термин conf/socc/AscottS09
, хотя он имеет тип solr.StrField
. Запрос работает, как ожидалось в Solr 4.0, когда член заключено в кавычки:
key:"conf/socc/AscottS09"
schema.xml:
...
<fieldType name="string" class="solr.StrField" sortMissingLast="true" mitNorms="true"/>
...
<field name="key" type="string" indexed="true" stored="true" multiValued="false" required="true"/>
...
Является ли это ошибка или есть какие-либо изменения о том, как Solr обрабатывает строковое поле?
EDIT: Я не нашел никакой информации, связанной с миграционными Infos в Solr 4.0
Вы проверили это поле с анализатором на admin ui тоже? – stephanruhl
К моему опыту solr4 ведет себя так, как вы ожидали, поэтому причина должна быть найдена в вашем коде/конфигурации. – heinob
Анализатор в admin делает это правильно. Но при использовании поля запроса в admin ui с включенным режимом отладки это показывает, что этот термин анализируется и обозначается: ключ: conf/socc/AscottS09 key: conf/socc/AscottS09 + ключ: conf + RegexpQuery (текст:/socc /) + (+ текст: ascotts09 + текст: ascott + текст: s + текст: 09) +: conf + text:/socc/+ (+ текст: ascotts09 + текст: ascott + текст: s + текст: 09) str –
problemzebra