2
是否可以使用子字符串/通配符/部分字符串匹配搜索solr属性字段(非solr.TextField
类型)?太阳黑子solr属性子字符串/通配符搜索
例如,如果我有一个solr.StrField
字段和包含字符串“1234567890”的文档,我希望能够在“456”上进行搜索并返回该文档。
从我所看到的只有textfields可以在此方法中使用像EdgeNGram之类的东西,而不是属性字段?
是否可以使用子字符串/通配符/部分字符串匹配搜索solr属性字段(非solr.TextField
类型)?太阳黑子solr属性子字符串/通配符搜索
例如,如果我有一个solr.StrField
字段和包含字符串“1234567890”的文档,我希望能够在“456”上进行搜索并返回该文档。
从我所看到的只有textfields可以在此方法中使用像EdgeNGram之类的东西,而不是属性字段?
您可以将部分匹配用于字符串以及通配符的文本字段。
如果您正在使用查询分析器,支持领先的通配符查询,您可以轻松地搜索*456*
,这应该符合1234567890
然而,EdgeNGram
只会为solr.TextField
工作,为solr.strField
不允许分析仪被添加到它。
因此,您只能定义类为solr.TextField
的字段,并在分析链中包含EdgeNGram
,这会将索引项分解为用于部分匹配的带状疱疹。
是否有支持引导通配符的查询解析器?我还没有碰到过。 – cpjolicoeur
ExtendedDismax查询解析器支持它。 setAllowLeadingWildcard(true)被标记为true。 – Jayendra