Lucene: Я хотел бы выполнить поиск по индексу, который я построил, используя Lucene, но во время поиска я хотел бы игнорировать регистр - PullRequest
0 голосов
/ 12 октября 2011

Lucene: Я хотел бы выполнить поиск по индексу, который я построил, используя Lucene, но во время поиска я хотел бы игнорировать регистр критериев поиска, как я могу это сделать?Например, в моем индексе (lucene) есть либо http, либо HTTP, поэтому при поиске по http я должен получить оба результата обратно.

Ответы [ 2 ]

4 голосов
/ 12 октября 2011

Это зависит от нескольких вещей.Во-первых, если анализатор, который вы использовали для индексации, еще не разбил текст на строчные буквы, вам будет крайне сложно это сделать.

Я считаю, что KeywordAnalyzer сохраняет регистр.Таким образом, слово «Hello» будет оставлено как «Hello» в качестве термина в индексе, что означает, что единственный способ найти это слово - это использовать точно такой же регистр.

StandardAnalyzer,однако преобразует все термины в строчные.Таким образом, «Привет» будет «Привет» в списке терминов, но если вы также сохраняете текст, а не просто анализируете его, он сохранит регистр строки, если вы извлечете его из индекса.Тем не менее, поиск по "HEllo", "heLLO", "HeLlO" будет таким же, как и "привет", поскольку он будет преобразовывать все из них в нижний регистр.либо вы всегда можете создать свой собственный.

Наконец, очень рекомендуется использовать тот же анализатор, который вы использовали для создания индекса при его поиске.

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

Следует добавить LowerCaseFilter в цепочку фильтров анализа.
Используя Lucene LowerCaseFilter, токены могут быть переданы в нижнем регистре перед индексацией и поиском, чтобы сделать поиск без учета регистра.
Предложил бы это сделать во время индексирования и поиска.

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