本篇内容主要讲解“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有什么优点”有了更深的了解,不妨来实际操作一番吧!这里是亿速云网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。
原文链接:https://my.oschina.net/u/585210/blog/3116455