1

我是 Elasticsearch 的新手,愿意使用全文搜索引擎。对于文本分析,我需要使用(多语言)语言分析器。Elasticsearch 提供内置的语言分析器,但我不确定它们是否涵盖预处理步骤,例如:删除停用词、词干提取、删除不需要的字符等。我将使用多字段,因为所有(描述)语言都在同一个字段中进行索引在一个文件中。在这种情况下,这样的映射是否正确?

{
"mappings": {
    "properties": {
        "description": {
            "type": "text",
            "analyzer": "english"
        },
        "description": {
            "type": "text",
            "analyzer": "german"
        },
        "description": {
            "type": "text",
            "analyzer": "french"
        }
    }
 }

我很困惑如何使用语言分析器来分析输入文本以及我们何时使用映射而不是设置?

4

1 回答 1

0

如果您使用预定义的语言分析器,它们会在内部使用相应的语言停用词,这里提到的列表,您也可以使用它们定义自己的自定义停用词。

例如,这个Lucene 代码(Lucene 由 Elasticsearch 内部使用)显示了english分析器的停用词,但如果您想添加更多世界,您也可以这样做。

对于词干提取,正如词干分析器官方文档中所述,您也可以使用词干分析器标记过滤器和自定义,它也提到了语言。

此外,分析器经过三阶段过程(字符过滤器、标记器和标记过滤器),内置语言分析器已预先配置所有这些,如果您愿意,您可以使用自己的东西并使用自定义分析器自定义它们。

于 2020-06-22T10:43:42.973 回答