Elasticsearch是一个实时 分布式搜索和分析引擎,用于全文搜索、结构化搜索、分析以及这三者混合使用。
用es主要是对数据进行增删改查,所以记录下基本的语句。
搜素索引megacorp下所有emplyee的信息
GET /megacorp/employee/_search
得到姓氏为smith的所有结果
GET/megacorp/employee/_search?q=last_name:Smith
同样地效果
GET /megacorp/employee/_search
{
"query"
: {
"match"
: {
"last_name"
:
"Smith"
}
}
}
找到姓氏为“Smith”的员工,但是只想得到年龄大于30岁的员工,添加过滤器(filter)
GET /megacorp/employee/_search
{
"query"
: {
"filtered"
: {
"filter"
: {
"range"
: {
"age"
: {
"gt":
30}
}
},
"query"
: {
"match"
: {
"last_name"
:
"smith"
}
}
}
}
}
搜索所有喜欢“rock climbing”的员工
GET /megacorp/employee/_search
{
"query"
: {
"match"
: {
"about"
:
"rock climbing"
}
}
}
确切的匹配若干个单词或者短语(phrases)。例如我们想要查询同时包含"rock"和"climbing"(并且是相邻的)的员工记录
GET /megacorp/employee/_search
{
"query"
: {
"match_phrase"
: {
"about"
:
"rock climbing"
}
}
}
从每个搜索结果中高亮(highlight)匹配到的关键字,这样用户可以知道为什么这些文档和查询相匹配
GET /megacorp/employee/_search
{
"query"
: {
"match_phrase"
: {
"about"
:
"rock climbing"
}
},
"highlight"
: {
"fields"
: {
"about"
: {}
}
}
}