ReversedWildcardFilterFactory如何加速通配符搜索?

时间:2015-06-02 13:46:47

标签: solr full-text-search

Solr docs说:

  

solr.ReversedWildcardFilterFactory

     

一个过滤器,可以反转令牌以提供更快的前导通配符和   前缀查询。将此过滤器添加到索引分析器,但不是   查询分析器。标准的Solr查询解析器将   使用它来反转通配符和前缀查询以改进   性能...

虽然如何做到这一点?

由于所有令牌都通过ReversedWildcardFilterFactory运行,它是否反过来存储所有令牌? (这对我来说似乎很愚蠢)

或者,它是否通常存储所有标记反转的标记,然后在查询时大约两倍地运行索引列表? (据推测,这仍然比使用领先*的搜索快得多)

我感到困惑的部分原因是,在Solr的示例schema.xml中,他们执行以下操作:

<copyField source="*_en" dest="text_en_index"/>
<copyField source="*_en" dest="text_rev_index"/>

其中text_rev_index使用ReversedWildcardFilterFactory。如果ReversedWildcardFilterFactory存储了正向和反向令牌,我不确定为什么他们会将这些字段复制到正向和反向dest字段。

1 个答案:

答案 0 :(得分:0)

来自https://docs.lucidworks.com/display/lweug/Wildcard+Queries

  

Lucid查询解析器将检测何时使用前导通配符   调用反转过滤器(如果存在于索引分析器中)   反转通配符,以便生成正确的查询   与将存储在索引中的反转术语匹配的术语   对于这个领域。