2011-09-13 91 views
2

我在synonym.txt文件中有拼寫錯誤和更正的單詞列表。我如何在solr中使用拼寫建議?如何從solr的synonym.txt獲取拼寫建議?

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

laptap => laptop 
delll => dell 

當我查詢「laptap」到Solr服務器,我應該得到的建議是「做你的意思是:筆記本電腦」。

我知道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中?我不想使用索引,因爲我已經有了一個列表。任何想法?

回答

2

更新,以適應不從平面文件創建索引/字典的要求:

  1. 看那Suggester功能,在Solr的3.1
  2. Implement a Custom SpellCheckComponent加入具有所期望的行爲(儘管我認爲這個提示器接近你想要的)。

上建議:

下面是建立在拼寫檢查的Solr的好文章,包括如何配置基於文件的拼寫檢查。您應該能夠遵循此操作並將示例配置中的spellings.txt文件替換爲您的synonyms義文本。

Getting started Spell Checking with Apache Lucene and Solr

+0

FileBasedSpellChecker創建和使用一個拼寫字典基於斷平面文件是相同創建索引。我有拼寫錯誤的單詞到糾正單詞的映射,我想使用這些映射,而不是在索引中搜索。我不知道如何使用FileBasedSpellChecker來使用我的文件作爲建議。 – qwerty

+0

沒有意識到FileBasedSpellChecker從平面文件中創建拼寫字典。 –