如何从solr中的synonyms.txt获取拼写建议?

时间:2011-09-13 00:38:25

标签: solr spell-checking synonym search-suggestion

我在synonyms.txt文件中列出了拼写错误和更正的单词。如何在solr中使用它来进行拼写建议?

e.g。 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怎么样?我不想使用索引,因为我已经有了一个列表。有什么想法吗?

1 个答案:

答案 0 :(得分:2)

更新以满足不从平面文件创建索引/词典的要求:

  1. 查看Solr 3.1中添加的Suggester功能
  2. Implement a Custom SpellCheckComponent具有所需的行为(虽然我认为建议者接近你想要的)。
  3. 以前的建议:

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

    Getting started Spell Checking with Apache Lucene and Solr