Elasticsearch快速入门之简单搜索

  • 结构

Elasticsearch(以下简称为ES)为非关系型数据库,为了便于理解,可以把它与关系型数据库结构做以下映射



  • 通信

使用RESTful API,通过9200端口与ES通信,支持多种语言,甚至可以使用curl

curl语法格式如下:

curl -X<VERB> '<PROTOCOL>://<HOST>/<PATH>?<QUERY_STRING>' -d '<BODY>'



  • 搜索

简单搜索

GET /megacorp/employee/_search?q=last_name:Smith

DSL搜索

GET /megacorp/employee/_search

{

    "query": {

        "match": {

           "last_name": "Smith"

        }

    }

}

过滤搜索

GET /megacorp/employee/_search

{

    "query": {

        "filtered": {

           "query": {

                "match": {

                   "last_name": "smith"

                }

           },

           "filter": {

               "range": {

                  "age": {

                     "gt": 10

                  }

               }

           }

        }

    }

}

全文搜索

GET /megacorp/employee/_search

{

    "query": {

        "match": {

           "about": "rock climbing"

        }

    }

}

短语搜索

GET /megacorp/employee/_search

{

    "query": {

        "match_phrase": {

           "about": "rock climbing"

        }

    }

}

 高亮搜索结果

GET /megacorp/employee/_search

{

    "query": {

        "match_phrase": {

           "about": "rock climbing"

        }

    },

    "highlight": {

        "fields": {

            "about":{}

        }

    }

}

聚合分析

GET /megacorp/employee/_search

{

    "query": {

        "match": {

           "last_name": "smith"

        }

    }, 

    "aggs": {

        "all_interests":{

            "terms":{"field":"interests"}

        }

    }   

}

聚合分析之分级汇总

统计每种兴趣下职员的平均年龄

GET /megacorp/employee/_search

{

    "aggs": {

        "all_interests":{

            "terms":{"field":"interests"},

            "aggs":{

                "ava_age":{

                    "avg":{"field":"age"}

                }

        }

    }   

}

}

评论

© 走过岁月...... | Powered by LOFTER