Solr 6.6.0 Нечувствительный к регистру запрос не работает

Solr 6.6.0 Нечувствительный к регистру запрос не работает. Я пробовал все другие варианты/ответы, доступные в Интернете.

Я устал с,

<tokenizer class="solr.LowerCaseTokenizerFactory"/> 

но он не работает.

Я устал с,

<filter class="solr.LowerCaseFilterFactory"/>

но он не работает.

Я устал по-разному, но ни один из них не работал.

т. е. я хочу получить тот же результат поиска с помощью title_s:iPhone и title_s:iphone.

Я не уверен, что может вызвать проблему.


person Kiran    schedule 13.11.2017    source источник
comment
schema.xml пожалуйста.   -  person Oyeme    schedule 14.11.2017
comment
скорее всего, нам нужно определение fieldType для поля title_s.   -  person Mysterion    schedule 14.11.2017
comment
Вы переиндексировали после изменения определения поля? Что говорит страница анализа на странице администратора Solr для поля и вашего контента/запроса?   -  person MatsLindh    schedule 14.11.2017
comment
Я также перезапустил solr и переиндексировал документы, но нечувствительность к регистру не работала.   -  person Kiran    schedule 14.11.2017
comment
@Oyeme, (AT)Все, вы можете найти управляемую схему (используется в solr 6.6) codepen.io/ столбец anon/pen/WXEwNw   -  person Kiran    schedule 15.11.2017


Ответы (2)


Если бы поиск без учета регистра не работал в выпуске Solr, вы получили бы гораздо больше шума, чем один вопрос о переполнении стека.

Давайте используем этот вопрос, чтобы проиллюстрировать подход, которому все должны следовать для базового использования Solr:

1) Обратитесь к документации — у Solr есть хорошая бесплатная онлайн-документация. В частности, описывается, как настроить файл schema.xml и различные его аспекты [1]. Отсюда вы можете узнать, что довольно просто настроить поле без учета регистра:

<field name="title" type="text_case_insensitive" indexed="true" stored="true"/>

<fieldType name="text_case_insensitive" class="solr.TextField" positionIncrementGap="100">
        <analyzer type="index">
            <tokenizer class="solr.StandardTokenizerFactory"/>
            <filter class="solr.LowerCaseFilterFactory"/>
        </analyzer>
        <analyzer type="query">
            <tokenizer class="solr.StandardTokenizerFactory"/>
            <filter class="solr.LowerCaseFilterFactory"/>
        </analyzer>
</fieldType>

Н.Б. если у вас была предыдущая конфигурация в схеме для поля заголовка, вам нужно переиндексировать

[1]https://lucene.apache.org/solr/guide/6_6/field-type-definitions-and-properties.html

person Alessandro Benedetti    schedule 14.11.2017
comment
Вы можете найти управляемую схему (используемую в solr 6.6) codepen.io/anon/pen/WXEwNw В столбце HTML - person Kiran; 15.11.2017

Я пробовал по-разному, но ничего не работает. Чем я реализовал, как показано ниже, и он работает нормально.

Дайте мне знать, что нижеприведенный метод правильный или нет, но он отлично работает для меня :)

Мне пришлось удалить приведенный ниже код из схемы,

<fieldType name="string" class="solr.StrField" sortMissingLast="true" docValues="true"/>

И добавил (заменил) ниже код,

<fieldType name="string" class="solr.TextField">
  <analyzer type="index">
    <tokenizer class="solr.WhitespaceTokenizerFactory"/>
    <filter class="solr.LowerCaseFilterFactory"/>
  </analyzer>
  <analyzer type="query">
    <tokenizer class="solr.WhitespaceTokenizerFactory"/>
    <filter class="solr.LowerCaseFilterFactory"/>
  </analyzer>
</fieldType>
person Kiran    schedule 06.12.2017