[英]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.Sao
& techdata.com
。 您可以在Solr UI中检查当前的分词器如何拆分文本。
取而代之的是的TextField
,其默认StandardAnalyzer
你需要为使用StrField
,或自定义分析,以避免电子邮件的标记化-例如,你可以使用KeywordTokenizer
,这将会使电子邮件完好,但你可以申请额外的过滤器一样, LowerCaseFilter
。 或者,您可以使用UAX29URLEmailTokenizer 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.