Lucene TextField не совместим с TermQuery?

В настоящее время я индексирую свои текстовые значения в документ с помощью TextField, например

document.add(new TextField(name, value, Field.Store.YES))

Когда я ищу эти значения, я использую TermQuery, внутри которого есть один термин, соответствующий имени и значению, ранее установленным в документе.

Выполнение моего TermQuery не возвращает никаких результатов, когда мой текст добавляется с помощью TextField. Если я использую StringField, он работает.

Кто-нибудь может объяснить, почему?

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

да, но я должен искать в TextField с TermQuery? Если нет, то какой запрос мне следует использовать?

gospodin 22.03.2019 08:52

Конечно, вы можете использовать TermQuery для поиска в текстовом поле, чтобы найти соответствие одному термину в этом поле.

femtoRgon 22.03.2019 18:18
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
3
87
0

Другие вопросы по теме