62 lines
No EOL
1.7 KiB
Markdown
62 lines
No EOL
1.7 KiB
Markdown
```
|
||
# 说明: 在索引为megacorp,类型为employee的文档中,查找last_name为smith,年龄大于30岁的人
|
||
GET /megacorp/employee/_search
|
||
{
|
||
"query" : {
|
||
"bool": {
|
||
"must": {
|
||
"match" : {
|
||
"last_name" : "smith"
|
||
}
|
||
},
|
||
"filter": {
|
||
"range" : {
|
||
"age" : { "gt" : 30 }
|
||
}
|
||
}
|
||
}
|
||
}
|
||
|
||
```
|
||
|
||
```
|
||
# 说明:全文搜索,相关性搜索。所有有"rock“或”climbing"的文档都被查找出来,根据_score大小排序
|
||
GET /megacorp/employee/_search
|
||
{
|
||
"query" : {
|
||
"match" : {
|
||
"about" : "rock climbing"
|
||
}
|
||
}
|
||
}
|
||
```
|
||
|
||
```
|
||
说明:找出一个属性中的独立单词是没有问题的,但有时候想要精确匹配一系列单词或者_短语_ 。 比如, 我们想执行这样一个查询,仅匹配同时包含 “rock” 和 “climbing” ,并且 二者以短语 “rock climbing” 的形式紧挨着的雇员记录。
|
||
|
||
为此对 match 查询稍作调整,使用一个叫做 match_phrase 的查询
|
||
GET /megacorp/employee/_search
|
||
{
|
||
"query" : {
|
||
"match_phrase" : {
|
||
"about" : "rock climbing"
|
||
}
|
||
}
|
||
}
|
||
```
|
||
```
|
||
说明:新增一个查询参数--highlight--高亮。当执行该查询时,返回结果与之前一样,与此同时结果中还多了一个叫做 highlight 的部分。这个部分包含了 about 属性匹配的文本片段,并以 HTML 标签 <em></em> 封装
|
||
GET /megacorp/employee/_search
|
||
{
|
||
"query" : {
|
||
"match_phrase" : {
|
||
"about" : "rock climbing"
|
||
}
|
||
},
|
||
"highlight": {
|
||
"fields" : {
|
||
"about" : {}
|
||
}
|
||
}
|
||
}
|
||
``` |