Solr多语言搜索
问题描述:
我想知道如何配置Solr进行多语言搜索。我有一个网站有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的索引以不同语言的网址,但我不知道如何展现搜索结果。我的网站正在使用.NET技术
答
没有魔法弹。如果您知道输入文本的语言,那么您可以将语言存储在不同的字段中,并根据语言使用不同的词干。或者你可以避免使用stemmers,而是使用ngrams。
如果您继续使用停用词和受保护词,那么您需要编辑这些词,以免它们过于激进。例如,“is”和“by”是英语中的停用词,但它们的意思是许多斯堪的纳维亚语言中的“冰”和“城镇”。因此,您可以将它们从停用词中删除,但是您可能想要添加“je”和“il”,因为它们是法语停用词。但是“je”在荷兰语和塞尔维亚语等语言中有不同的含义,因此可能不会...
首先通过修剪标记器,分析器,过滤器链,然后用流利的其他语言进行一些测试。让他们向你展示奇怪的结果,并解释他们为什么奇怪。看看东方语言,因为ngram是真正处理它们的唯一方法。