索尔docs http://wiki.apache.org/solr/AnalyzersTokenizersTokenFilters#solr.ReversedWildcardFilterFactory say:
solr.ReversedWildcardFilterFactory
一个过滤器,可以反转令牌以提供更快的前导通配符和
前缀查询。将此过滤器添加到索引分析器,但不添加到
查询分析器。标准 Solr 查询解析器将
使用它来反转通配符和前缀查询以改进
表现...
但它是如何做到这一点的呢?
既然所有的token都经过ReversedWildcardFilterFactory,那么它是否会反向存储所有的token呢? (这对我来说似乎很愚蠢)
或者,它是否正常存储所有令牌and反转的标记,然后在查询时运行大约两倍长的索引列表? (大概这仍然比使用前导 * 进行搜索要快得多)
我感到困惑的部分原因是在这个例子中schema.xml
从 Solr 中,他们执行以下操作:
<copyField source="*_en" dest="text_en_index"/>
<copyField source="*_en" dest="text_rev_index"/>
where text_rev_index
uses a ReversedWildcardFilterFactory
。如果ReversedWildcardFilterFactory
存储正向和反向令牌,我不确定为什么他们会将这些字段复制到正向和反向dest
fields.
From https://docs.lucidworks.com/display/lweug/Wildcard+Queries https://docs.lucidworks.com/display/lweug/Wildcard+Queries:
Lucid 查询解析器将检测何时使用前导通配符并
调用反转过滤器(如果存在于索引分析器中)以
反转通配符术语,以便生成正确的查询
将与存储在索引中的反向术语相匹配的术语
对于这个领域。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)