• elastic search 查询


    eelastic search主要有两种查询方式,一种是查询字符串,一种是请求体(json格式)查询。

    查询字符串:

    查询字符串的功能相对简单,使用容易。

    比如GET http://localhost:9200/list/doc/_search,直接在游览器地址栏输入以上地址,elastic search会返回json格式字符串,意思是查询所有list索引下面类型为doc的文档。

    那如果我是 GET http://localhost:9200/_search呢?没错就是在查询所有索引所有类型中的文档,值得一提的是elastic search 将在7以后版本取消类型(type)这一概念。

    现在假如我有这样格式的文档(导入bank索引详细见我关于logstash导入elastic search的博客)

    {
    "_index": "bank",
    "_type": "account",
    "_id": "25",
    "_version": 1,
    "_score": 1,
    "_source": {
    "account_number": 25,
    "balance": 40540,
    "firstname": "Virginia",
    "lastname": "Ayala",
    "age": 39,
    "gender": "F",
    "address": "171 Putnam Avenue",
    "employer": "Filodyne",
    "email": "virginiaayala@filodyne.com",
    "city": "Nicholson",
    "state": "PA"
    }
    }

    我想查找 firstname下面名为Virginia的所有账户,那么可以使用如下查询字符串

    GET http://localhost:9200/bank/account/_search?q=firstname:Virginia

    返回结果

    {
    "took": 7,
    "timed_out": false,
    "_shards": {
    "total": 5,
    "successful": 5,
    "skipped": 0,
    "failed": 0
    },
    "hits": {
    "total": 1,
    "max_score": 4.882802,
    "hits": [
    {
    "_index": "bank",
    "_type": "account",
    "_id": "25",
    "_score": 4.882802,
    "_source": {
    "account_number": 25,
    "balance": 40540,
    "firstname": "Virginia",
    "lastname": "Ayala",
    "age": 39,
    "gender": "F",
    "address": "171 Putnam Avenue",
    "employer": "Filodyne",
    "email": "virginiaayala@filodyne.com",
    "city": "Nicholson",
    "state": "PA"
    }
    }
    ]
    }
    }
    如果我想找firstname为Virginia,lastname为Ayala的人,可以用如下查询字符串
    GET http://localhost:9200/bank/account/_search?q=firstname:Virginia+lastname:Ayala
     
    如果我们想要一些更加复杂的查询,那么就要采用请求体查询了
    比如 GET http://localhost:9200/bank/account/_search?q=firstname:Virginia+lastname:Ayala
    在请求体查询中是这样的

    GET /bank/account/_search
    {
    "query": {
    "bool": {
    "must":[
    { "match": { "firstname": "Virginia" }},
    { "match": { "lastname": "Ayala" }}
    ]
    }
    }
    }

     
     
  • 相关阅读:
    URAL-1998 The old Padawan 二分
    URAL-1997 Those are not the droids you're looking for 二分匹配
    URAL-1991 The battle near the swamp 水题
    URAL-1989 Subpalindromes 多项式Hash+树状数组
    URAL-1987 Nested Segments 线段树简单区间覆盖
    URAL-1981 Parallel and Perpendicular 水题
    k8s-api
    golang test模块
    k8s-calico
    docker设置proxy
  • 原文地址:https://www.cnblogs.com/shineyoung/p/9546614.html
Copyright © 2020-2023  润新知