参考资料:
https://elasticsearch.cn/book/elasticsearch_definitive_guide_2.x/_search_lite.htm
1.查询es数据的方法
curl -X<VERB> '<PROTOCOL>://<HOST>:<PORT>/<PATH>?<QUERY_STRING>' -d '<BODY>'
curl -XGET 'http://localhost:9200/_count?pretty' -d '
{
"query":{
"match_all":{}
}
}'
2.轻量搜索
查询index=megacorp, doc_type=employee的所有文档
curl -XGET 'http://localhost:9200/megacorp/employee/_search?pretty'
查询index=megacorp, doc_type=employee且last_name=Smith的所有文档
curl -XGET 'http://localhost:9200/megacorp/employee/_search?q=last_name:Smith'
3.查询表达式搜索,使用领域特定语言(DSL)
查询index=megacorp, doc_type=employee且last_name=Smith的所有文档
curl -XGET 'http://localhost:9200/megacorp/employee/_search' -d '
{
"query" : {
"match" : {
"last_name" : "Smith"
}
}
}'
4.全文搜索
下面的语句中未必会匹配上完整的"rock climbing",而是会根据相关性打分,单独的"rock"也有可能匹配上。
GET /megacorp/employee/_search
{
"query" : {
"match" : {
"about" : "rock climbing"
}
}
}
5.短语搜索
如果想匹配完整的"rock climbing",需要将match改为match_phrase。这样"rock"就无法匹配了。 不过"I like rock climbing"这样的语句还是能匹配上的。
GET /megacorp/employee/_search
{
"query" : {
"match_phrase" : {
"about" : "rock climbing"
}
}
}
6.高亮搜索 highlight参数
高亮显示about字段
GET /megacorp/employee/_search
{
"query" : {
"match_phrase" : {
"about" : "rock climbing"
}
},
"highlight": {
"fields" : {
"about" : {}
}
}
}
7.聚合
查询特定兴趣爱好员工的平均年龄
GET /megacorp/employee/_search
{
"aggs" : {
"all_interests" : {
"terms" : { "field" : "interests" },
"aggs" : {
"avg_age" : {
"avg" : { "field" : "age" }
}
}
}
}
}