2014-11-25 80 views
1

我在ubuntu 12.04 LTS上有solr v4.8.0。Solr - 俄语同义词不起作用

我有schema.xml中的字段与筛选器solr.SynonymFilterFactory。

<fieldType name="text_ru" class="solr.TextField" positionIncrementGap="100"> 
    <analyzer> 
    <tokenizer class="solr.StandardTokenizerFactory"/> 
    <filter class="solr.LowerCaseFilterFactory"/> 
    <filter class="solr.StopFilterFactory" ignoreCase="true" words="lang/stopwords_ru.txt" format="snowball" /> 
    <filter class="solr.SnowballPorterFilterFactory" language="Russian"/> 
    <filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true" /> 
    </analyzer> 
</fieldType> 

我有下一个映射

spidermen, superman, batman, бетмен, бетмэн, спайдермен, спайдермэн, супермен, супермэн, spiderman 

我检查 “synonyms.txt” 文件的编码,它是UTF-8。

与英语同义词查询工作正常。我只有与俄语同义词问题,他们不工作,solr忽略他们。我自己无法解决这个问题。

添加人我30分钟后: 温柔的话语:“бетмэн”,“спайдермэн”在搜索结果中“бетмен”找到,但是,“спайдермен”都没有。

+0

是否有任何其他信息可以从'solr'获得,就像调试输出一样? – Abrixas2 2014-11-25 13:35:02

+1

您可以向我们展示schema.xml中的完整字段定义吗? – SaidbakR 2014-11-25 13:41:22

+0

所以,“бетмэн”,“супермэн”,“спайдермэн”正在工作。 “бетмен”,“супермен”,“спайдермен”不起作用。 我添加到synonyms .txt“巴黎”,“法国”。重新启动后,我可以立即查询同义词(巴黎,法国)。但是在完全重新索引之后,“париж”和“франция”也不起作用。 – user3345632 2014-11-25 14:18:26

回答

1

尝试更换同义词,看门过滤器的顺序。事实上,在你切断了单词的结尾之后,你正在查找同义词文件。可能只是不匹配。

分析管理Web UI中的屏幕是一个很好的工具,可以查看文本在通过单个过滤器时发生的情况。