Search 在架构文件中添加MappingCharFilterFactory后是否需要重新索引文档?

Search 在架构文件中添加MappingCharFilterFactory后是否需要重新索引文档?,search,solr,Search,Solr,我正在进行Solr搜索。我正在为文档编制索引,并用变音符号表示Solr。但问题是,如果我搜索同一个单词时不带发音符号,它不会返回结果 我已经在我的模式文件中进行了更改,从 我在架构文件中添加的更改: <charFilter class="solr.MappingCharFilterFactory" mapping="mapping-ISOLatin1Accent.txt"/> 它给了我结果 我有1000万个产品要solr索引。 但我的问题是,有必要对所有文档重新编制索引。是否有

我正在进行Solr搜索。我正在为文档编制索引,并用变音符号表示Solr。但问题是,如果我搜索同一个单词时不带发音符号,它不会返回结果

我已经在我的模式文件中进行了更改,从

我在架构文件中添加的更改:

<charFilter class="solr.MappingCharFilterFactory" mapping="mapping-ISOLatin1Accent.txt"/>

它给了我结果

我有1000万个产品要solr索引。 但我的问题是,有必要对所有文档重新编制索引。是否有任何解决方案不需要重新索引所有文档


有人能帮我解决这个问题吗?

简短的回答是:是的,这是必要的。否则索引将不一致,因为您将拥有已进行转换的文档,以及未进行转换的文档

较长的答案是:您可以(某种程度上)解决这个问题,尽管在查询时成本会更高(因为您希望将尽可能多的工作转移到索引部分,这可能不是一个好主意)。您必须添加一个过滤器,该过滤器创建所有不同版本的字符,这些字符可能会在查询中附加变音符号,这可能会导致大量带有或不带变音符号的术语

根据术语的数量,现在为最重要的单词生成同义词列表就足够了。使用变音符号从数据库中获取所有术语,对这些术语进行转换,并从中创建同义词列表。使用该选项可将查询扩展到同一术语的其他版本(带或不带变音符号)

这不是一个理想的情况,您可能应该将重点放在更好地处理重新索引上,因为这可能是您在升级、对模式的其他更改等方面必须做的事情