Я построил индекс с помощью StandardAnalyzer, в этом индексе есть несколько полей. Например, представьте, что у него есть идентификатор и тип. Оба NON_ANALYZED, то есть вы можете искать их только как есть.
В моем указателе есть несколько записей:
{Id: "1", Type: "Location"},
{Id: "2", Type: "Group"},
{Id: "3", Type: "Location"}
Когда я ищу +Id:1
или любое другое число, я получаю соответствующий результат (опять же с помощью StandardAnalyzer).
Однако, когда я ищу +Type:Location
или +Type:Group
, я не получаю никаких результатов. Странно то, что когда я включаю начальные подстановочные знаки, +Type:*ocation
действительно возвращает результаты! +Type:*Location
или другие комбинации - нет.
Это заставило меня поверить, что индексатор/запрос не любит символы в верхнем регистре! После преобразования Type в нижний регистр до location
и group
перед их индексацией я мог искать их как таковые.
Если я изменю поле «Тип» на «АНАЛИЗ», оно будет работать практически с любым поиском (прописные/строчные буквы и т. д.), но я хочу запросить поле «Тип» как есть.
Я совершенно сбит с толку, почему он это делает. Может ли кто-нибудь объяснить мне, почему мой индексатор не позволяет мне искать поля NON_ANALYZED, в значении которых есть заглавная буква?