标签:dex 字母 tar nes keyword 存储 建库 修改 分组聚合
上一篇讲的是安装,本篇记录常用的命令
https://www.cnblogs.com/xiaozhang666/p/13845617.html
#1.新增 PUT /root01 #2.查看 GET /root01 #3.删除 DELETE /root01
PUT /索引库名称/_mapping/类型名称 或者 /索引库名称/类型名称/_mapping { "properties":{ "字段名称":{ "type":"类型", "index": true, "store": false, "analyzer": "分词器" } } }
类型:对应的是mysql中的字段类型
String
text:
可以分词,但是不可以参与分组聚合查询
keyword:
不可以分词,但是可以参与分组聚合查询
数值类型
double,long,float,int.....
数组
arrays
日期
date: 日期类型不常用,日期类型占用空间较大,一般使用毫秒值---->long
对象
..........
index:
是否索引,默认值是true,代表会索引
store:
是否独立存储,默认值是false,不独立存储,除非是比较重要的字段可以设置。
analyzer:
分词器,ik_max_word(最细粒度分词)
举例
#必须先创建heima索引库 PUT /root01 #创建类型 PUT /root01/_mapping/goods { "properties": { "title": { "type": "text", "analyzer": "ik_max_word" }, "subtitle": { "type": "text", "analyzer": "ik_max_word" }, "images": { "type": "keyword", "index": "false" }, "price": { "type": "float" } } } #查看类型 GET /root01/_mapping/goods
#1.新增文档 POST /root01/goods/ { "title":"大红手机", "images":"http://image.leyou.com/12479122.jpg", "price":2699.00 } #2.根据id查看文档 GET /root01/goods/a7S5P3UBnwV3pvMMA4Sr #3.指定id新增 POST /root01/goods/1 { "title":"小红手机", "images":"http://image.leyou.com/12479122.jpg", "price":3399.00 } #4.根据id修改文档 如果数据库中没有id=3会新增,如果有则修改 POST /heima/goods/3 { "title":"超超超大红手机", "images":"http://image.leyou.com/12479122.jpg", "price":99999.00 } #5.根据id删除文档 DELETE /root01/goods/3 #6.根据查询删除所有 POST /root01/_delete_by_query { "query": { "match_all": {} } }
基本查询
POST /root01/_search { "query": { "match_all": {} } } #2.条件模糊查询 POST /root01/_search { "query": { "match": { "title": "大红" } } } #3.多字段匹配查询 #准备数据 POST /root01/goods/1 { "title": "超大红手机", "images": "http://image.leyou.com/12479122.jpg", "price": 5288, "subtitle": "华为手机" } POST /heima/_search { "query": { "multi_match": { "query": "手机", "fields": [ "title", "subtitle" ] } } } #4.精确查询 查询时字段是不分词 POST /root01/_search { "query": { "term": { "price": { "value": "2699" } } } } #5.多条件精确查询 POST /root01/_search { "query": { "terms": { "price": [ "2699", "5288" ] } } }
结果过滤
默认是包含(includes),可以设置excludes不包含
#结果过滤 包含 POST /root01/_search { "_source": [ "subtitle", "title" ], "query": { "match_all": {} } } #结果过滤 不包含 POST /root01/_search { "_source": { "excludes": ["price","title"] }, "query": { "match_all": {} } }
高级查询(扩展)
#布尔组合查询 与或非 GET /root01/_search { "query":{ "bool":{ "must": { "match": { "title": "小米" }}, "must_not": { "match": { "title": "电视" }}, "should": { "match": { "title": "手机" }} } } } #范围查询 gte 大于等于 lte 小于等于 POST /root01/_search { "query": { "range": { "price": { "gte": 2699, "lte": 3288 } } } } #模糊查询,默认系数为1,可以写错一个字母 POST /root01/_search { "query": { "fuzzy": { "title": "appla" } } } #模糊查询,最多支持两个字母写错 POST /root01/_search { "query": { "fuzzy": { "title": { "value": "appaa", "fuzziness": 2 } } } }
标签:dex 字母 tar nes keyword 存储 建库 修改 分组聚合
原文地址:https://www.cnblogs.com/xiaozhang666/p/13846075.html