2

我在 synonyms.txt 文件中有一个拼写错误和更正的单词列表。如何在 solr 中使用它来提供拼写建议?

例如 synonyms.txt 包含以下条目:

laptap => laptop
delll => dell

当我向 solr 服务器查询“laptap”时,我应该得到“您的意思是:笔记本电脑?”的建议。

我知道 schema.xml 看起来像这样:

<fieldType name="textSpell" class="solr.TextField" positionIncrementGap="100" omitNorms="true">
<analyzer type="index">
   <tokenizer class="solr.StandardTokenizerFactory"/>
     <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt"/>
     <filter class="solr.LowerCaseFilterFactory"/>
     <filter class="solr.StandardFilterFactory"/>
</analyzer>
<analyzer type="query">
     <tokenizer class="solr.StandardTokenizerFactory"/>
     <filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true"/>
     <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt"/>
     <filter class="solr.LowerCaseFilterFactory"/>
     <filter class="solr.StandardFilterFactory"/>
</analyzer> 
</fieldType>

solrconfig.xml 呢?我不想使用索引,因为我已经有一个列表。任何想法?

4

1 回答 1

2

更新以适应不从平面文件创建索引/字典的要求:

  1. 查看 Solr 3.1 中添加的Suggester功能
  2. 实现具有所需行为的自定义拼写检查组件(尽管我认为 Suggester 接近您想要的)。

之前的建议:

这是一篇关于在 Solr 中设置拼写检查的好文章,其中包括如何配置基于文件的拼写检查。您应该能够按照此操作并将示例配置中的 spellings.txt 文件替换为您的 synonyms.txt 文件。

开始使用 Apache Lucene 和 Solr 进行拼写检查

于 2011-09-13T01:08:06.977 回答