弹性搜索将多个字段映射到单个字段

mal*_*lik 0 elasticsearch

弹性搜索是否提供将不同字段映射到单个字段并使用该单个字段进行搜索的功能。

例如 _all 指的是文档中的所有字段。

同样,我们是否有任何映射配置来定义将引用多个字段的字段。

例如:我有一个名为 Brand,Name,Category 的字段。

我需要将品牌和名称映射到单个字段custome_field。

我希望在映射期间而不是在查询期间使用它。我知道跨字段在查询期间会这样做。

And*_*fan 6

看看copy_to 功能。它就像一个习惯_all。见此处详细了解此:

在 Metadata: _all 字段中,我们解释了特殊的 _all 字段将所有其他字段的值作为一个大字符串进行索引。但是,将所有字段索引到一个字段中并不是非常灵活。最好有一个自定义 _all 字段用于此人的姓名,而另一个自定义 _all 字段用于其地址。

Elasticsearch 通过字段映射中的 copy_to 参数为我们提供此功能:

PUT /my_index {
    "mappings": {
        "person": {
            "properties": {
                "first_name": {
                    "type":     "string",
                    "copy_to":  "full_name" 
                },
                "last_name": {
                    "type":     "string",
                    "copy_to":  "full_name" 
                },
                "full_name": {
                    "type":     "string"
                }
            }
        }
    } }
Run Code Online (Sandbox Code Playgroud)