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":{}
        }
    }
}


你可能感兴趣的:(ES权威指南(中文版)学习_搜索_2)