是否可以使用子字符串/通配符/部分字符串匹配来搜索solr属性字段(非solr.TextField
类型)?
例如,如果我有一个solr.StrField
字段和包含字符串“1234567890”的文档,我希望能够搜索“456”并返回该文档。
从我所看到的只有文本字段可以使用EdgeNGram之类的东西在这个方法中搜索,而不是属性字段?
答案 0 :(得分:2)
您可以让部分匹配适用于String以及通配符的文本字段。
如果您使用的查询解析器支持前导通配符查询,则可以轻松搜索*456*
,这应该与1234567890匹配。
但是,EdgeNGram
仅适用于solr.TextField
,因为solr.strField
不允许将分析器添加到其中。
因此,您只能定义类为solr.TextField
的字段,并在分析链中包含EdgeNGram
,这会将索引的术语细分为带状疱疹以进行部分匹配。