美文网首页其它
Elasticsearch入门 ,使用 script 做聚合查询

Elasticsearch入门 ,使用 script 做聚合查询

作者: ___n | 来源:发表于2019-06-20 13:53 被阅读5次

我们的需求,唯一不变的,就是一直在变化。我们先来看需求,我们需要从一个配件名,找到不同品牌和单位的配件并进行展示,但是因为数据里面有太多的杂乱和重复数据,所以这里需要对多个条件进行聚合查询。

因为没有在一开始创建好查询的字段,所以我们这里使用script来拼字段内容,script支持多种语言。

https://www.elastic.co/guide/en/elasticsearch/reference/current/modules-scripting.html

localhost/索引名/_search
POST 提交

{
    "query":{
        "bool":{
            "must":{
                "wildcard":{"字段名":"*主查找内容*"}
            }
        }
    },
    "aggs": {
        "自定义名称": {
            "terms": {
                "script": {
                    "inline": "doc['需要聚合的字段名1'].value+' '+doc['需要聚合的字段名2'].value +' '+doc['需要聚合的字段名3'].value"
                }
            }
        }
    }
}

执行后看看我们的 aggregations

"buckets": [
    {"key": "字段1字段2字段3","doc_count": 15},
    {"key": "字段1字段2字段3","doc_count": 5},
    {"key": "字段1字段2字段3","doc_count": 3}
]

如果执行提示需要对字段设置 fielddata=true , 那可以先执行下面的字段进行设置,再执行查询

localhost/索引名/_mapping/text/?update_all_types
POST 提交

{
    "字段类型(如text)":
    {
        "properties":
        {
            "提示需要设置的字段名":{
                "type":"类型(如text)",
                "fielddata":true
            }
        }  
    } 
}

相关文章

网友评论

    本文标题:Elasticsearch入门 ,使用 script 做聚合查询

    本文链接:https://www.haomeiwen.com/subject/kevdqctx.html