Вопрос

Я использую Lucene.net 3.0.3 для индексации содержания документов Word-, Excel- и т. Д. И некоторые пользовательские поля для каждого документа.
Если я индексирую поле с именем "заглавие" в качестве Field.index.not_analyzed Lucene-Index сохранил поле в правильной форме. Название отверстия хранится в одном токене. Это то, что я хочу.

например Название документа "Lorem Ipsum dolor"
поле в Lucene-Index: "Lorem Ipsum dolor"

Если я ищу, используя точный поиск в этом поле, я не получу результатов.
Мой поисковой первое время выглядит: Название: "Lorem Ipsum dolor"
Для поиска я использую один и тот же стандарт -аналцер.

Почему я не могу найти документ?

Это было полезно?

Решение

StandardAnalyzer чувствителен к пробелу, среди других разделителей. То есть он токенизирует поисковый термин на три токена:

( Lorem, ipsum, dolor )

Но вы проиндексировали поле title с использованием Field.Index.NOT_ANALYZED Таким образом, ни один из трех токенов выше не может соответствовать одному токену в этом поле:

( Lorem ipsum dolor )

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top