太阳黑子solr属性substring / wildcard搜索

时间:2011-10-27 16:05:11

标签: search solr sunspot

是否可以使用子字符串/通配符/部分字符串匹配来搜索solr属性字段(非solr.TextField类型)?

例如,如果我有一个solr.StrField字段和包含字符串“1234567890”的文档,我希望能够搜索“456”并返回该文档。

从我所看到的只有文本字段可以使用EdgeNGram之类的东西在这个方法中搜索,而不是属性字段?

1 个答案:

答案 0 :(得分:2)

您可以让部分匹配适用于String以及通配符的文本字段。

如果您使用的查询解析器支持前导通配符查询,则可以轻松搜索*456*,这应该与1234567890匹配。

但是,EdgeNGram仅适用于solr.TextField,因为solr.strField不允许将分析器添加到其中。
因此,您只能定义类为solr.TextField的字段,并在分析链中包含EdgeNGram,这会将索引的术语细分为带状疱疹以进行部分匹配。