Solr多语言搜索

时间:2011-05-27 07:04:16

标签: .net solr sitecore

我想知道如何为多语言搜索配置Solr。我有一个有Solr搜索的网站。这是为英语工作我想为所有语言工作。

以下是我的架构..

<field name="url" type="string" indexed="true" stored="true" required="true" multiValued="false" />
        <field name="title" type="text" indexed="true" stored="true" required="false" multiValued="false" />
        <field name="content" type="text" indexed="true" stored="true" required="true" multiValued="false" />
        <field name="contenttype" type="string" indexed="true" stored="true" required="false" multiValued="false" />
        <field name="contentsize" type="integer" indexed="false" stored="true" required="false" multiValued="false" />
        <field name="timestamp" type="date" indexed="true" stored="true" required="false" multiValued="false" />
        <field name="language" type="string" indexed="true" stored="true" required="false" multiValued="false" />
        <field name="description" type="text" indexed="true" stored="true" required="false" multiValued="false" />
        <field name="keywords" type="text" indexed="true" stored="true" required="false" multiValued="false" />    
    <field name="keywordsNoneStemmed" type="string" indexed="true" stored="true" required="false" multiValued="true" />    
        <field name="thumbnail" type="string" indexed="true" stored="true" required="false" multiValued="false" />
    <field name="virtualitem" type="boolean" indexed="true" stored="true" required="false" multiValued="false" />
    <field name="section" type="string" indexed="true" stored="true" required="false" multiValued="false"></field>
    </fields>

当我看到日志文件Solr正在使用不同语言索引URL但我不知道如何显示搜索结果..我的网站正在使用.net技术

1 个答案:

答案 0 :(得分:0)

没有灵丹妙药。如果您知道输入文本的语言,那么您可以将语言存储在不同的字段中,并根据语言使用不同的词干分析器。或者你可以避免使用词干分析器,而是使用ngram。

如果您继续使用停用词和受保护的字词,则需要对其进行编辑,以免它们过于激进。例如“is”和“by”是英语中的停用词,但它们在许多斯堪的纳维亚语言中意为“冰”和“城镇”。因此,你会从停用词中删除它们,但你可能想添加“je”和“il”,因为它们是法语停用词。但是“je”在荷兰语和塞尔维亚语等语言中有不同的含义,所以也许不是......

首先修剪标记器,分析器,过滤器链,然后与熟练掌握其他语言的人员进行一些测试。让他们向你展示奇怪的结果,并解释为什么他们很奇怪。看看东方语言,因为ngrams真的是处理它们的唯一方法。