我正在进行一个使用Elasticsearch执行多语言全文搜索的项目。我正在使用的历史培训数据集也是多语言的,我现在正尝试使用语言分析器和语言检测来配置文本分析。
1)我使用下面的链接作为指南,正如第一段所写的,我需要安装--一个包含处理器的推断。我怎么安装它?(我不熟悉Java和elasticsearch中的新版本) https://www.elastic.co/de/blog/multilingual-search-using-language-identification-in-elasticsearch
2) Elasticsearch为许多语言提供语言分析器,我需要用8种语言配置分析器,如果我遵循这个链接https://www.elastic.co/guide/en/elasticsearch/reference/current/analysis-lang-analyzer.html,我将不得不创建8个不同的自定义分析器,这是相当长的。是否有更短的方法为8种语言编写一个设置?
发布于 2020-06-19 10:49:31
首先,正如博客中提到的,an Inference Ingest Processor是一个机器学习( Machine,ML)特性,除非您有一个用例,否则您不需要它,而且它也是X包的一部分,而不是核心的Elasticsearch,所以如果X包的基本层中没有包含它,您可能不得不启用X模块并购买它。
关于你的第二个问题,正如博客中提到的,有两种方法,一种是为每种语言建立一个单独的索引,这样你就不必定义所有特定于语言的字段,第二种方法是为每种语言使用一个字段,而所有语言都是同一索引的一部分。
没有维护8个自定义分析器的开销,因为大多数分析器都是内置的,您可以检查在用例中都支持的Elasticsearch语言分析器。而其他的,如果你必须创建它,将仅仅是一次的努力,并将成为您的设置和映射的一部分。
下面是每个字段方法的索引映射示例,我正在使用大多数常用语言的内置分析器。
{
"mappings": {
"properties": {
"en": {
"type": "text",
"analyzer": "english"
},
"russian": {
"type": "text",
"analyzer": "russian"
},
"spanish": {
"type": "text",
"analyzer": "spanish"
},
"swedish": {
"type": "text",
"analyzer": "swedish"
}
}
}
}https://stackoverflow.com/questions/62468077
复制相似问题