ES权威指南(中文版)学习_搜索_2

文档1

PUT /megacorp/employee/1 {    
    "first_name" : "John",    
    "last_name" :  "Smith",    
    "age" :        25,    
    "about" :      "I love to go rock climbing",    
    "interests": [ "sports", "music" ]
}

文档2

PUT /megacorp/employee/2 {    
    "first_name" :  "Jane",    
    "last_name" :   "Smith",    
    "age" :         32,    
    "about" :       "I like to collect rock albums",    
    "interests":  [ "music" ]
}

文档3

PUT /megacorp/employee/3 {
    "first_name" :  "Douglas",
    "last_name" :   "Fir",
    "age" :         35,
    "about":        "I like to build cabinets",
    "interests":  [ "forestry" ]
}


搜索

GET  /megacorp/employee/1

用 _search 替代原来的文档 ID:

GET /megacorp/employee/_search   #默认返回前10个结果

查询字符串  搜索:

在请求中依旧使用_search关键字,然后将查询语句传递给参数q=。这样就可以得到所有姓氏为Smith的结果:

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

使用DSL语句查询(Domain Specific Language)

GET /megacorp/employee/_search {
    "query":{
            "match":{
                    "last_name":"Smith"
            }
        }
}


查找年龄大于30,姓氏是Smith的员工:

GET /megacorp/employee/_search {
    "filtered":{
        "filter":{
            "range":{
                "age":{ "gt" : 30 }
            }
        },
        "query":{
            "match":{ "last_name" : "Smith" }
        }
    }
}

搜索所有喜欢"rock climbing"的员工:(这里会匹配到 rock 、climbing 两个单词至少包含其中一个的文档)

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

短语搜索 搜索同时包含 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":{}
        }
    }
}


转载于:https://my.oschina.net/MrYx3en/blog/509147

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值