代码之家  ›  专栏  ›  技术社区  ›  user3174311

SOLR过滤器的执行顺序是什么?

  •  1
  • user3174311  · 技术社区  · 6 年前

    这些过滤器是否有特定的执行顺序?我试图移动过滤器,但没有得到明确的结果。

            <analyzer type="query">
                <tokenizer class="solr.WhitespaceTokenizerFactory"/>
                <filter class="solr.ASCIIFoldingFilterFactory"/>
                <filter class="solr.SynonymGraphFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true"/>
                <filter class="solr.WordDelimiterGraphFilterFactory"/>
                <filter class="solr.LowerCaseFilterFactory"/>
                <filter class="solr.PorterStemFilterFactory"/>
            </analyzer>
    
    1 回复  |  直到 6 年前
        1
  •  1
  •   MatsLindh    6 年前

    它们是按照你定义的顺序执行的。

    移动它们可能不会改变任何东西,因为这取决于特定过滤器如何转换标记。标记器是唯一的例外,因为它将在任何常规筛选器之前执行,而 charFilters 将在标记器(即charFilter->标记器->过滤器)之前执行。

    你可以使用 Analysis Solr admin页面下的部分,查看每个过滤器如何按顺序处理令牌,以及链的每个步骤的输入和结果是什么。

    更改配置后,还必须重新加载配置(通常通过重新加载核心或集合来完成)。