本篇内容主要讲解“Elasticsearch7有什么优点”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Elasticsearch7有什么优点”吧!
Elasticsearch7与之前版本最大的区别就是舍弃了type的概念,默认的type为"_doc"。
先建索引
PUT /shop
dynamic,推荐用strict
dynamic设为true时,新增字段的文档写入时,Mapping同时被更新
dynamic设为false时,Mapping不会被更新,新增字段的数据无法被索引,但是会出现在_source中
dynamic设为strict,文档将写入失败
修改dynamic参数
POST /shop/_mapping { "dynamic": strict }
text类型 可以被分词 但是 keyword 分词是不能用的 要全匹配
修改或新增mapping字段type
POST /shop/_mapping { "properties":{ "name":{ "type":"text", }, "content":{ "type":"text", "analyzer": "ik_max_word", "search_analyzer": "ik_smart" }, "createTime":{ "type":"date", "format": "yyyy-MM-dd HH:mm:ss" } } }
新增数据:
-POST shop/_doc/558pa4e2 { "name":"圆领韩版学生男女毛衣秋冬装上装", "breif":"150件左右圆领韩版学生男女毛衣秋冬装,长袖宽松套头情侣装针织衫上衣", "minPrice":"15", "sn":"558pa4e2", "createTime":"2019-10-07 14:30:23", "sort":"100", "tags":"9月第2波" }
为索引添加别名
-POST /_aliases { "actions": [ { "add": { "index": "shop-item", "alias": "shop-item-alias" } } ] }
分词器测试:
POST /_analyze { "analyzer": "ik_smart", "text": "关于加快建设合肥地铁七号线的通知说明" }
单字段查询:在name中查询有"女装"的数据
POST /shop/_doc/_search { "query":{ "match":{ "name":"女装" } } }
单字段查询:在name中查询有"女装"的数据,且只返回name、brief数据
POST /shop/_doc/_search { "query":{ "match":{ "name":"女装" } }, "_source": ["name","brief"] }
分页查询
POST /shop/_doc/_search { "query":{ "match":{ "name":"女装" } }, "_source": ["name","brief"], "from":0, "size":10 }
排序,在name中查询有"女装"的数据,并按createTime倒序
{ "query":{ "match":{ "name":"女装" } }, "sort":{ "createTime": { "order": "desc" } } }
多字段排序,排序,在name中查询有"女装"的数据,先按sort字段排序,如果相同再按createTime倒序
{ "query":{ "match":{ "name":"女装" } }, "sort": { "sort":"asc", "createTime": "desc" } }
查询"name"字段中包含"女装"和"品牌"的所有数据
POST /shop/_doc/_search { "query": { "bool": { "must": [ { "match": { "name": "品牌" } }, { "match": { "name": "女装" } } ] } } }
查询"name"字段中包含"女装"或"品牌"的所有数据
POST shop/_doc/_search { "query": { "bool": { "should": [ { "match": { "name": "品牌" } }, { "match": { "name": "女装" } } ] } } }
查询"name"字段中既不包含"女装"也不包含"品牌"的所有数据
POST /shop/_doc/_search { "query": { "bool": { "must_not": [ { "match": { "name": "品牌" } }, { "match": { "name": "女装" } } ] } } }
多字段查询:在name,与brief中查询有"女装"的数据
POST /shop/_doc/_search { "query":{ "multi_match":{ "query":"女装", "fields":["name","brief"] } } }
精确查找:查找tags既属于“9月第1波”又属于"9月第2波"的数据(terms用于精确查找,一般用于非text字段)
POST /shop/_doc/_search { "query":{ "bool":{ "must":[ {"term":{ "tags":"9月第1波" }}, {"term":{ "tags":"9月第2波" }} ] } } }
过滤器的用法,filter的效率高,尽可能的用filter
POST /shop/_doc/_search { "query":{ "bool":{ "filter":[ { "term":{"tags":"9月第1波"} }, { "term":{"tags":"9月第2波"} } ] } } }
范围查询
POST /shop/_doc/_search { "query":{ "range":{ "minPrice":{ "gte":"4", "lte":"5" } } } }
简单聚合
POST /shop/_doc/_search { "aggs":{ "tagsGroup":{ "terms":{ "field":"tags" } }, "priceGroup":{ "terms":{ "field":"minPrice" } } } }
到此,相信大家对“Elasticsearch7有什么优点”有了更深的了解,不妨来实际操作一番吧!这里是亿速云网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。