Запрос префикса Solr с символами ISOLatin1Accent - PullRequest
0 голосов
/ 23 октября 2011

Я пытаюсь проиндексировать поле таким образом, чтобы я мог найти документ, используя префиксный запрос 'æb*', а также 'aeb*'.Что происходит: он находит последнее, но не первое.Та же проблема с å, î и т. Д.

Это моя схема:

<fieldtype name="text" class="solr.TextField" positionIncrementGap="100">
  <analyzer>
    <charFilter class="solr.MappingCharFilterFactory" mapping="mapping-ISOLatin1Accent.txt"/>
    <tokenizer class="solr.StandardTokenizerFactory"/>
    <filter class="solr.StandardFilterFactory"/>
    <filter class="solr.LowerCaseFilterFactory"/>

  </analyzer>
</fieldtype>

Как видите, я использую одни и те же анализаторы для индекса и запроса.Поэтому, если я правильно понимаю, запрос 'æb*' должен быть нормализован до 'aeb*'.Символ '*' как-то мешает?Как настроить схему для получения желаемых результатов?

Я использую Solr 1.4.1.

1 Ответ

1 голос
/ 23 октября 2011

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

Вы можете либо определить собственный синтаксический анализатор запросов и проанализировать условия поиска для префиксного запроса.
Иначе, определить поля с акцентированной и не акцентированной версиями, и выполнять поиск по обоим.Тем не менее, вам все еще нужно прописать свои условия поиска.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...