我正在研究一个使用Elasticsearch执行多语言全文本搜索的项目。我正在使用的历史训练数据集也是多语言的,我现在正尝试使用语言分析器和语言检测来配置文本分析。
1)我使用以下链接作为指南,按照第一段所述,我需要安装推理提取处理器。我该如何安装? (我不熟悉Java和Elasticsearch的新功能) https://www.elastic.co/de/blog/multilingual-search-using-language-identification-in-elasticsearch
2)Elasticsearch提供了多种语言的语言分析器,如果我点击此链接https://www.elastic.co/guide/en/elasticsearch/reference/current/analysis-lang-analyzer.html,我将需要配置8种语言的分析器,我将不得不创建8种不同的自定义分析器,这很长。有没有一种更短的方法可以为8种语言编写一个设置?
答案 0 :(得分:1)
首先在博客an Inference Ingest Processor
中提到的是机器学习(ML)功能,除非有用例,否则不需要它,它也是X-pack的一部分,而不是核心Elasticsearch,因此您如果X-pack的基本层未包含该模块,则可能必须启用X-pack模块并购买。
谈到第二个问题,正如博客中提到的,两种方法之一是为每种语言都有一个单独的索引,这样您就不必定义所有特定于语言的字段,而第二种方法是每种语言的字段,所有语言都将成为同一索引的一部分。
由于大多数分析器是内置的,因此无需维护8个定制分析器,您可以检查Elasticsearch language analyzers在用例中全部受支持。而其他人,如果必须创建它,则只需一次努力,并且将是设置和映射的一部分。
下面是每个字段方法的索引映射示例,其中我使用的是大多数常用语言的内置分析器。
{
"mappings": {
"properties": {
"en": {
"type": "text",
"analyzer": "english"
},
"russian": {
"type": "text",
"analyzer": "russian"
},
"spanish": {
"type": "text",
"analyzer": "spanish"
},
"swedish": {
"type": "text",
"analyzer": "swedish"
}
}
}
}