将ngram添加到solr模式并重建索引

将ngram添加到solr模式并重建索引,solr,Solr,我正在尝试添加ngram过滤器到我现有的模式,以启用子字符串搜索 当前solr索引有1000万行……如果我将此更改添加到架构中。我需要重建索引吗 <fieldType name="text" class="solr.TextField" positionIncrementGap="100"> <analyzer type="index"> <filter class="solr.EdgeNGramFilterFactory" minGramSize="3

我正在尝试添加ngram过滤器到我现有的模式,以启用子字符串搜索

当前solr索引有1000万行……如果我将此更改添加到架构中。我需要重建索引吗

<fieldType name="text" class="solr.TextField" positionIncrementGap="100">
  <analyzer type="index">
    <filter class="solr.EdgeNGramFilterFactory" minGramSize="3" maxGramSize="25" />

您需要重新编制索引,才能使更改对已编制索引的文档生效。EdgeNGramTokenFilter的工作原理是将令牌分解为n-gram并对每个n-gram进行索引,这只能在索引时完成。如果不重新索引,Solr将起作用,但不会得到正确的子字符串搜索

通常,只要更改字段的分析器,就需要重新编制索引。如果当前模式与索引期间使用的模式不匹配,Solr通常会中断或生成错误的搜索结果。如果您可以不费吹灰之力地重新编制索引,那么这将比深入研究并找出Solr在模式更改后行为不端的原因要容易得多