是否可以使用子字符串/通配符/部分字符串匹配搜索solr属性字段(非solr.TextField
类型)?
例如,如果我有一个solr.StrField
字段和包含字符串"1234567890"的文档,我希望能够搜索"456"并返回该文档。
从我可以看到只有文本字段可以在这个方法中使用像EdgeNGram之类的东西搜索,但不是属性字段??
您可以为字符串以及通配符的文本字段设置部分匹配。
如果您正在使用的查询解析器,支持先导通配符查询,您可以轻松地搜索*456*
,这应该匹配1234567890。
然而,EdgeNGram
只适用于solr.TextField
,因为solr.strField
不允许添加分析器。
因此,您只能定义类为solr.TextField
的字段,并在分析链中使用EdgeNGram
,这将把索引的术语分解成块以进行部分匹配。