美文网首页
ELK第二周笔记

ELK第二周笔记

作者: mov觉得高数好难 | 来源:发表于2017-10-26 19:04 被阅读0次

    Query:处理的是此文档与之的匹配程度,会计算_score(相关度分数)
    Filter:仅仅计算是否匹配,回答的是“是”或者“否”,不计算分数。频繁使用的filter将被自动缓存
    例:

    GET /_search
    {
      "query": { 
        "bool": { 
          "must": [
            { "match": { "title":   "Search"        }}, 
            { "match": { "content": "Elasticsearch" }}  
          ],
          "filter": [ 
            { "term":  { "status": "published" }}, 
            { "range": { "publish_date": { "gte": "2015-01-01" }}} 
          ]
        }
      }
    }
    

    Bool Query中,
    must:匹配文档中必须出现该分句,并且会对分数产生影响
    filter:匹配文档中必须出现该分句,但是不对分数产生影响
    should:匹配一个或者多的should分句
    must_not:匹配文档中必须不能出现该分句
    例子:

    POST _search
    {
      "query": {
        "bool" : {
          "must" : {
            "term" : { "user" : "kimchy" }
          },
          "filter": {
            "term" : { "tag" : "tech" }
          },
          "must_not" : {
            "range" : {
              "age" : { "gte" : 10, "lte" : 20 }
            }
          },
          "should" : [
            { "term" : { "tag" : "wow" } },
            { "term" : { "tag" : "elasticsearch" } }
          ],
          "minimum_should_match" : 1,
          "boost" : 1.0
        }
      }
    }
    

    其中boost是字句权重

    Aggregations:
    固定形式:

    "aggregations" : {
        "<aggregation_name>" : {
            "<aggregation_type>" : {
                <aggregation_body>
            }
            [,"meta" : {  [<meta_data_body>] } ]?
            [,"aggregations" : { [<sub_aggregation>]+ } ]?
        }
        [,"<aggregation_name_2>" : { ... } ]*
    }
    

    例如计算平均值:

    {
        "aggs" : {
            "avg_grade" : { "avg" : { "field" : "grade" } }
        }
    }
    

    一个脚本化的例子:

    
        "aggs" : {
            ...
    
            "aggs" : {
                "avg_corrected_grade" : {
                    "avg" : {
                        "field" : "grade",
                        "script" : {
                            "lang": "painless",
                            "inline": "_value * params.correction",
                            "params" : {
                                "correction" : 1.2
                            }
                        }
                    }
                }
            }
        }
    }
    

    处理缺失值:

    {
        "aggs" : {
            "grade_avg" : {
                "avg" : {
                    "field" : "grade",
                    "missing": 10 
                }
            }
        }
    }
    

    去重查询:

    {
        "aggs" : {
            "author_count" : {
                "cardinality" : {
                    "field" : "author"
                }
            }
        }
    }
    

    关于_all字段:

    PUT my_index
    {
      "mappings": {
        "type_1": { 
          "properties": {...}
        },
        "type_2": { 
          "_all": {
            "enabled": false
          },
          "properties": {...}
        }
      }
    }
    

    该字段在type_1中是有效的,2中则完全无效

    Kibana部分开始...



    添加完以后,可以在这里进行一些简易的搜索

    画一个入门图...好好玩...


    现在我们给这个饼图加上一个维度——年龄:

    一个入门的柱状图,用的莎士比亚的表,配置见图:

    :因为在一开始我们将play_name定义为“keyword”,所以他只能被整个匹配

    如果想让Y轴不从0开始,从最小值开始,可以去Options里选择“Scale Y-Axis to data bounds”

    相关文章

      网友评论

          本文标题:ELK第二周笔记

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