【发布时间】:2011-10-27 16:05:11
【问题描述】:
是否可以使用子字符串/通配符/部分字符串匹配来搜索 solr 属性字段(非 solr.TextField 类型)?
例如,如果我有一个 solr.StrField 字段和包含字符串“1234567890”的文档,我希望能够搜索“456”并返回该文档。
据我所知,在这种方法中只能使用 EdgeNGram 等搜索文本字段,但不能搜索属性字段??
【问题讨论】:
是否可以使用子字符串/通配符/部分字符串匹配来搜索 solr 属性字段(非 solr.TextField 类型)?
例如,如果我有一个 solr.StrField 字段和包含字符串“1234567890”的文档,我希望能够搜索“456”并返回该文档。
据我所知,在这种方法中只能使用 EdgeNGram 等搜索文本字段,但不能搜索属性字段??
【问题讨论】:
您可以让部分匹配也适用于字符串以及通配符的文本字段。
如果您使用的查询解析器支持前导通配符查询,您可以轻松搜索*456*,这应该匹配1234567890。
但是,EdgeNGram 仅适用于 solr.TextField,因为 solr.strField 不允许向其中添加分析器。
所以你只能定义类为solr.TextField的字段,并在分析链中有EdgeNGram,这会将索引项分解为部分匹配的瓦片。
【讨论】: