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