有如下几种
- match_all 查询所有
- match 分词查询
- term 词条查询
- fuzzy 模糊查询
- range 范围查询
查询所有(match_all)
GET my_index/_search { "query": { "match_all": {} } }
- query:代表查询对象
- match_all:代表查询所有文档
效果
分词查询(match)
match类型查询,会把查询条件进行分词,然后进行查询,多个词条之间默认是or的关系
GET /my_index/_search { "query": { "match": { "title": "小米电视" } } }
- title:字段名
- 小米电视:搜索条件
如果需要更精确的查找,希望多个词条之间的关系是and的关系,可以这样写
GET my_index/_search { "query": { "match": { "title": { "query": "小米电视", "operator": "and" } } } }
这样就只有同时包含小米和电视的词条才会被搜索到
词条匹配 (term)
term词条查询,查询的是一个词条,不会被分词,可以是keyword类型的字符串、数值、或者text类型字段中分词得到的某个词条
GET my_index/_search { "query": { "term": { "price": 2999.00 } } }
模糊查询(fuzzy)
一个新的概念,叫做编辑距离,一个词条变为另一个词条需要修改的次数,比如,facebool要修改为facebook需要做的是把l修改为k,一次即可,编辑距离就是1
模糊查询允许用户查询内容与实际内容存在偏差,但是编辑距离不能超过2
GET my_index/_search { "query": { "fuzzy": { "title": { "value": "小米", "fuzziness": 1 } } } }
可以看到,结果中包含小米、大米都被搜索到了
范围查询(range)
range查询找出那些落在指定区间内的数字或者时间
- gt 大于
- gte 大于等于
- lt 小于
- lte 小于等于
GET my_index/_search { "query": { "range": { "price": { "gte": 2000, "lt": 3000 } } } }
布尔查询(bool)
bool把各种其他查询通过must(与)、must_not(非)、should(或)的方式进行组合
GET my_index/_search { "query": { "bool": { "must": { "match": { "title": "小米" } }, "must_not": { "match": { "title": "电视" } } } } }
要小米,但是不要电视
原文地址:http://www.cnblogs.com/xulinjun/p/16913637.html
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,请务用于商业用途!
3. 如果你也有好源码或者教程,可以到用户中心发布,分享有积分奖励和额外收入!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
7. 如遇到加密压缩包,默认解压密码为"gltf",如遇到无法解压的请联系管理员!
8. 因为资源和程序源码均为可复制品,所以不支持任何理由的退款兑现,请斟酌后支付下载
声明:如果标题没有注明"已测试"或者"测试可用"等字样的资源源码均未经过站长测试.特别注意没有标注的源码不保证任何可用性