参考资料:
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" } } } } } }