Как проиндексировать и найти номера с Lucene.NET? - PullRequest
5 голосов
/ 16 ноября 2008

Я реализовал полнотекстовый поиск для веб-сайта, используя Lucene.NET (версия 2.0). Индексирование и поиск работают хорошо, но у меня есть одна проблема. Если я ищу номера (номера телефонов, номера продуктов и т. Д.) В качестве условий поиска, я не получаю никаких документов.

Я использую класс Lucene.Net.Analysis.SimpleAnalyzer. Я думаю, что мне нужно изменить Analyzer и / или Tokenizer.

Любой совет?

Спасибо!

1 Ответ

13 голосов
/ 16 ноября 2008

Когда вы создаете документ Lucene, вы можете выбрать различные параметры индексации для каждого поля. Для полей, которые вы не хотите маркировать, вам нужно выбрать опцию Field.Index.UN_TOKENIZED. Это будет держать ваши номера телефонов и номера продуктов в такте.

Я бы также посоветовал использовать StandardAnalyzer, поскольку он не удаляет номера, как SimpleAnalyzer.

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

...