无法使用带通配符的solr query搜索电子邮件id字段

tsm1rwdh  于 2021-06-14  发布在  Cassandra
关注(0)|答案(1)|浏览(380)

我的表中有一个email id字段,在该字段上启用了通配符solr search
一封电子邮件 .xyz@pqr.com 每次我搜索 .xyz* 我可以搜索,如果我搜索pqr.com*我可以搜索,但只要我搜索 .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;
pbwdgjma

pbwdgjma1#

问题是,您的电子邮件被拆分为令牌,而不是完整的电子邮件,您很可能得到2个令牌: Shubha.Sao & techdata.com . 您可以在solr ui中检查当前标记器如何分割文本。
而不是 TextField 默认情况下 StandardAnalyzer 你需要用其中一个 StrField ,或自定义analyzer以避免电子邮件的标记化-例如,您可以使用 KeywordTokenizer 这将使电子邮件保持原样,但您可以应用其他筛选器,例如, LowerCaseFilter . 或者可以使用uax29urlemailtokenizer。

相关问题