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

时间:2014-11-27 07:29:43

标签: elasticsearch

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

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

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

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

我需要将Brand和Name映射到单个字段custome_field。

我希望它在映射时间期间而不是在查询时间期间。我知道在查询期间交叉字段会这样做。

1 个答案:

答案 0 :(得分:3)

看看copy_to functionality。它就像一个自定义_all。请参阅here有关此内容的更多信息:

  

在元数据中:_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"
                }
            }
        }
    } }