当我们尝试在术语中使用 @ 搜索Solr时,它不会返回任何结果。
假设有一个带有文本abc@ac.in的条目。
When I search abc@ac.in it works.
When I search abc@ it works.
When I search abc@a it FAILS and returns no result.
有人可以建议吗?
答案 0 :(得分:1)
最有可能的是,对于此字段,您使用的是solr.StandardTokenizerFactory
,它通过不同的符号将文本拆分为令牌,其中一个是@
,因此如果您放置abc@ac.in
你会得到像abc
ac
in
这样的代币。
对于电子邮件,我建议使用solr.KeywordTokenizerFactory
,saving tokens as it is。如果您的字段只包含电子邮件地址,那可能没问题。
但是,如果您的字段是要保留电子邮件的文本字段,则应使用solr.ClassicTokenizerFactory
,recognizes email addresses and domain names并且不要拆分