繁体   English   中英

无法使用带通配符的solr查询搜索电子邮件ID字段

[英]Cannot search on email id field using solr query with wildcard

我的表中有一个电子邮件ID字段,在其中使用通配符启用了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;

问题在于您的电子邮件被分为令牌,而不是完整的电子邮件,您很可能会获得2个令牌: Shubha.Saotechdata.com 您可以在Solr UI中检查当前的分词器如何拆分文本。

取而代之的是的TextField ,其默认StandardAnalyzer你需要为使用StrField ,或自定义分析,以避免电子邮件的标记化-例如,你可以使用KeywordTokenizer ,这将会使电子邮件完好,但你可以申请额外的过滤器一样, LowerCaseFilter 或者,您可以使用UAX29URLEmailTokenizer

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM