Может ли кто-нибудь помочь мне понять поведение поиска Solr в этом случае? - PullRequest
1 голос
/ 05 ноября 2019

Запрос такой: - (Profisee) индексированное поле имеет тот же токен, что и в приведенном выше входном запросе. Но поиск Solr дает ноль результатов. Если запрос такой: - (Profisee, то я могу найти документ в результате.

PS: я могу получить результат документа для запросов (Pro, (Profi, (Profise и т. Д.). ЗдесьВот прикрепленные изображенияXML-определение для типа поля

1 Ответ

1 голос
/ 06 ноября 2019

Во-первых, пожалуйста, включите соответствующие детали в свой вопрос в следующий раз, так как изображения трудны для поиска, затрудняют обзор вашего вопроса и их трудно читать тем, у кого нет идеального зрения.

По вашему актуальному вопросу проблема в том, что у вас есть WhitespaceTokenizer. Это будет только разрывать слова на пробелах, такие как . Индексированный документ содержит ваш термин как (foo), что означает, что будет соответствовать только (foo) (поскольку токенизатор only разрывается на пробел, а ( или ) не пробел).

foo (bar) будет проиндексирован как два токена, foo и (bar). Поиск по (bar не будет совпадать ни с одним.

Используйте StandardTokenizer, чтобы получить желаемое поведение, или используйте WordDelimiterGraphFilterFactory, чтобы разбить слово на дополнительные токены.

...