查询作者是名字包含 “jam” 的文档,返回 id 是 2和3 的文档
curl -XGET 'https://localhost:9200/test/article/_search?pretty' -d ' { "query": { "match": { "author": "jam" } } }'查询文章内容包含 “更新” 的文档,返回 id 是 4 的文档
curl -XGET 'https://localhost:9200/test/article/_search?pretty' -d ' { "query": { "match": { "content": "更新" } } }'2、过滤语句
1> term 过滤,主要用于精确匹配哪些值,比如数字,日期,布尔值或 not_analyzed 的字符串(未经分析的文本数据类型)
查询作者是 jam 的文档,返回 id 是 2 和 3 的文档
2> terms 过滤,跟 term 有点类似,但 terms 允许指定多个匹配条件
查询作者是 jam 、tomi 的文档,返回 id 是2,3,4 的文档
3> range 过滤,指定范围查找
查找 id 范围是 大于等于2,小余4 的文档,返回 id 是2,3 的文档
gt:大于
gte :大于等于
lt:小于
lte:小于等于
4> bool 过滤
可以合并多个过滤条件查询结果的布尔逻辑,它有三个操作符
must 多个查询条件的完全匹配,相当于 and
must_not 多个查询条件的相反匹配,相当于 not
should 至少有一个查询条件匹配, 相当于 or
查找作者是 jam (查出 id 为 2,3 的文档),但是 id 不能为 2 的文档,返回 id 为 3的文档(should 就自己测试吧)
curl -XGET 'https://localhost:9200/test/article/_search?pretty' -d ' { "query": { "bool": { "must": { "term": { "author": "jam" }}, "must_not": { "term": { "id": 2 }} } } }'提示:做精确匹配搜索时,你最好用过滤语句,因为过滤语句可以缓存数据
3、查询语句
1> multi_match 查询,同时搜索多个字段
查询 subject 或者 content 字段中有 “更新” 二字的文档,返回 id 为 4 的文档,由于用的分词器是 standard ,它会把 “更新” 拆成 “更”、”新” 来查找