В настоящее время я индексирую свои текстовые значения в документ с помощью TextField, например
document.add(new TextField(name, value, Field.Store.YES))
Когда я ищу эти значения, я использую TermQuery, внутри которого есть один термин, соответствующий имени и значению, ранее установленным в документе.
Выполнение моего TermQuery не возвращает никаких результатов, когда мой текст добавляется с помощью TextField. Если я использую StringField, он работает.
Кто-нибудь может объяснить, почему?
да, но я должен искать в TextField с TermQuery? Если нет, то какой запрос мне следует использовать?
Конечно, вы можете использовать TermQuery для поиска в текстовом поле, чтобы найти соответствие одному термину в этом поле.




TextFieldанализируется.StringFieldнет. Если вы хотите искать все содержимое поля как идентификатор или что-то в этом роде, StringField — правильный выбор. Если вы хотите искать слова в тексте, используйте TextField.