1 Search API简介
实现对 ES 中存储的数据进行查询,endpoint 为 _search
//查询全部 GET /_search // 指定单个索引查询 GET /my_index/_search // 指定多个索引查询 GET /my_index1,my_index2/_search // 通配符查询 GET /my_*/_search
查询形式
URI Search
方便通过命令行测试,仅能包含 es 提供的部分查询语法。
GET /my_index/_search?q=user:java
Request Body Search
es 提供的完备查询语法 Query DSL (Domain Specfic Language)
GET /my_index/_search { "query":{ "term":{"user":"seina"} } }
2 URL Search
通过 url query 参数来实现搜索,常用参数:
- q
指定查询的语句,语法为 Query String Syntax - df(default field)
q 中不指定字段时,默认查询的字段,如果不指定,es 会查询所有字段 - sort
排序 - timeout
指定超时时间,默认不超时 - from,size
用于分页
案例
查询 user 字段包含 java 的文档,结果按照 age 升序排列,返回第 5~15 个文档。若超过 1s 没有结束,则以超时结束。
GET /my_index/_search?q=java&df=user&sort=age:asc&from=4&size=10&timeout=1s