Не удается выполнить поиск в поле идентификатора электронной почты, используя запрос solr с подстановочным знаком - PullRequest
0 голосов
/ 10 декабря 2018

У меня в таблице есть поле идентификатора электронной почты, в котором поиск по solr включен с подстановочным знаком

Для электронной почты abc.xyz@pqr.com

Всякий раз, когда я ищу abc.xyz*, я могу искать,если я ищу pqr.com *, я могу искать, но всякий раз, когда я ищу abc.xyz@pqr.com*, я не получаю никаких результатов.

Ниже приведена конфигурация xml поля

<field indexed="true" multiValued="false" 
   name="user_email_id" stored="true" type="TextField"/>

нижесгенерированный запрос

SELECT * FROM example WHERE 
  solr_query='{"q":"user_email_id:Shubha.Sao@techdata.com*","start":0}' LIMIT 50;

1 Ответ

0 голосов
/ 10 декабря 2018

Проблема в том, что ваша электронная почта разбита на токены, и вместо полной электронной почты вы, скорее всего, получите 2 токена: Shubha.Sao & techdata.com.Вы можете проверить, как текст разделяется вашим текущим токенизатором в пользовательском интерфейсе Solr.

Вместо TextField с его значением по умолчанию StandardAnalyzer вам нужно использовать либо StrField, либо настроить анализатор, чтобы избежать токенизацииэлектронной почты - например, вы можете использовать KeywordTokenizer, чтобы оставить письмо без изменений, но вы сможете применить дополнительные фильтры, например, LowerCaseFilter.Или вы можете использовать UAX29URLEmailTokenizer .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...