Lucene 在ElasticSearch中使用多种词干分析语言
我正在为一个网站建立一个搜索引擎,用户可以来自许多不同的国家,并发布文本内容 我会考虑这一点: -法语生成法语和英语的内容 -德语生成德语和英语的内容 等等 我想知道的是,是否有可能在同一时间使用不同的snowball词干分析器语言进行搜索,以便在同一时间获得适当的结果 我们是否必须为每个snowball stemmer langage创建一个索引 这种情况是否存在已知的模式Lucene 在ElasticSearch中使用多种词干分析语言,lucene,
elasticsearch,stemming,snowball,Lucene,
elasticsearch,Stemming,Snowball,我正在为一个网站建立一个搜索引擎,用户可以来自许多不同的国家,并发布文本内容 我会考虑这一点: -法语生成法语和英语的内容 -德语生成德语和英语的内容 等等 我想知道的是,是否有可能在同一时间使用不同的snowball词干分析器语言进行搜索,以便在同一时间获得适当的结果 我们是否必须为每个snowball stemmer langage创建一个索引 这种情况是否存在已知的模式 谢谢你这么快的免责声明,我不是词干/语言形态学方面的专家,但既然没有其他人回应,我的理解如下。此外,我的大部分经验都与s
谢谢你这么快的免责声明,我不是词干/语言形态学方面的专家,但既然没有其他人回应,我的理解如下。此外,我的大部分经验都与solr有关 为了能够使用单一混合结果集对多种语言进行词干分析查询,您需要使用多语言词干分析器。我不确定elastisearch有什么可用的 尝试将为单一语言设计的多个词干分析器应用于单个索引将互相影响,可能不会产生预期的结果(词干规则因语言而异)
每种语言都有一个带有各自词干分析器的索引,适用于具有单一语言结果的查询。尝试根据多个索引组合多个查询的结果通常是相当有问题的(您必须尝试规范化相关性并处理分页)。您可以创建两个单独的索引并同时搜索两个(或全部)。只要索引字段相同,就可以得到有效的结果 这个新的ElasticSearch插件运行良好: 今年早些时候,elasticsearch团队的Kiju Kim在elastic.co博客上发表了一些关于如何使用多种语言的好文章:
基本上,您可以为您的内容使用多个字段—一个用于您想要支持的每种语言(第2部分)—每个字段都使用特定于语言的分析器(第1部分)。(第3部分)添加了一些优化,以使用语言检测填充正确的语言字段,而不是使用摄取管道(使用)填充所有字段。您可以组合词干分析器。我认为会有冲突,秩序会很重要。想知道这个问题有多大
"settings": {
"index": {
"analysis": {
"filter": {
"german_stemmer": {
"type": "stemmer",
"name": "light_german"
},
"english_stemmer": {
"type": "stemmer",
"name": "english"
},
"french_stemmer": {
"type": "stemmer",
"name": "light_french"
},
"italian_stemmer": {
"type": "stemmer",
"name": "light_italian"
}
}
"analyzer": {
"asdfghjkl": {
"tokenizer": "standard",
"filter": [
"english_stemmer",
"italian_stemmer",
"french_stemmer",
"german_stemmer"
]
}
}
}
}
}
我不知道你想要什么。您正在尝试使用单个查询搜索多种语言。。。并返回混合结果(多语言的结果)?是的,在单个搜索字段上,我希望能够检索多语言的文档(基本上是2,用户国家语言和英语),谢谢。我问了我公司的ElasticSearch专家,如果文档能够提供所需的语言,我们似乎可以使用多语言词干分析器。但是对于同一个文档使用两个词干分析器,我还不知道。计算文档的语言并不总是那么容易,因此我想用多种语言为同一文档编制索引