【ES】学习1-入门使用

参考资料:

https://elasticsearch.cn/book/elasticsearch_definitive_guide_2.x/_search_lite.htm

 

1.查询es数据的方法

curl -X<VERB> '<PROTOCOL>://<HOST>:<PORT>/<PATH>?<QUERY_STRING>' -d '<BODY>'
curl -XGET 'http://localhost:9200/_count?pretty' -d '
{
    "query":{
            "match_all":{}
     }
}'

 

2.轻量搜索

查询index=megacorp, doc_type=employee的所有文档

curl -XGET 'http://localhost:9200/megacorp/employee/_search?pretty'

查询index=megacorp, doc_type=employee且last_name=Smith的所有文档

curl -XGET 'http://localhost:9200/megacorp/employee/_search?q=last_name:Smith'

 

3.查询表达式搜索,使用领域特定语言(DSL)

查询index=megacorp, doc_type=employee且last_name=Smith的所有文档

curl -XGET 'http://localhost:9200/megacorp/employee/_search' -d '
{
    "query" : {
        "match" : {
            "last_name" : "Smith"
        }
    }
}'

 

4.全文搜索

下面的语句中未必会匹配上完整的"rock climbing",而是会根据相关性打分,单独的"rock"也有可能匹配上。

GET /megacorp/employee/_search
{
    "query" : {
        "match" : {
            "about" : "rock climbing"
        }
    }
}

 

5.短语搜索

如果想匹配完整的"rock climbing",需要将match改为match_phrase。这样"rock"就无法匹配了。 不过"I like rock climbing"这样的语句还是能匹配上的。

GET /megacorp/employee/_search
{
    "query" : {
        "match_phrase" : {
            "about" : "rock climbing"
        }
    }
}

 

6.高亮搜索 highlight参数

高亮显示about字段

GET /megacorp/employee/_search
{
    "query" : {
        "match_phrase" : {
            "about" : "rock climbing"
        }
    },
    "highlight": {
        "fields" : {
            "about" : {}
        }
    }
}

 

7.聚合

查询特定兴趣爱好员工的平均年龄

GET /megacorp/employee/_search
{
    "aggs" : {
        "all_interests" : {
            "terms" : { "field" : "interests" },
            "aggs" : {
                "avg_age" : {
                    "avg" : { "field" : "age" }
                }
            }
        }
    }
}

 

posted @ 2017-06-04 13:44  匡子语  阅读(303)  评论(0编辑  收藏  举报