栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

ElasticSearch入门笔记

ElasticSearch入门笔记

ElasticSearch是面向文档型数据库,一个数据就是一个文档

注意:Types的概念逐渐弱化,ES6.x中,一个index中只能包含一个type,ES7.x中,Type的概念已经被删除了。

索引操作 创建索引
PUT http://127.0.0.1:9200/shopping #shopping就是我们创建的索引
获取索引
GET http://127.0.0.1:9200/shopping
查看所有的索引
GET http://127.0.0.1:9200/_cat/indices?v  #这个v的意思是把信息详细展示出来

信息如下图

删除索引
DELETe http://127.0.0.1:9200/shopping
文档操作 创建文档
POST http://127.0.0.1:9200/shopping/_doc  #这个_doc其实就是type,但是只有这一个type
POST http://127.0.0.1:9200/shopping/_create/1001  #我们可以换一种请求方式,指定id为1001
查询索引下所有的数据
GET http://127.0.0.1:9200/shopping/_search
完全修改文档
PUT http://127.0.0.1:9200/shopping/_doc/1001  #然后请求体里面写更改后的文档内容
局部修改
POST http://127.0.0.1:9200/shopping/_update/1001 #一定要用post请求,且使用_update
删除文档
DELETE http://127.0.0.1:9200/shopping/_doc/1001  
查询

http://127.0.0.1:9200/shopping/_doc/_search表示查询的意思,但是我们增加了q=字段名:查询值,就会把满足条件数据查询出来。

但是通过url中增加查询字段的方式不太好,一般我们再请求体中放查询条件。如下:

GET http://127.0.0.1:9200/shopping/_doc/_search
{
	"query":{
		"match":{
			"category":"小米"
		}
	}
}

#请求体全量查询
GET http://127.0.0.1:9200/shopping/_doc/_search
{
	"query":{
		"match_all":{
			
		}
	}
}
#分页查询
GET http://127.0.0.1:9200/shopping/_doc/_search
{
	"query":{
		"match_all":{
			
		}
	},
	"from":0, #跳过几条
	"size":20 #每页查几条
}
#指定查出来我只要哪些字段
GET http://127.0.0.1:9200/shopping/_doc/_search
{
	"query":{
		"match_all":{
			
		}
	},
	"from":0, #跳过几条
	"size":20, #每页查几条
	"_source":["category"]
}
//排序
GET http://127.0.0.1:9200/shopping/_doc/_search
{
	"query":{
		"match_all":{
			
		}
	},
	"from":0, //跳过几条
	"size":20, //每页查几条
	"_source":["category"],
    "sort":{
        "price":{
            "order":"desc"
        }
    }
}
多条件查询
GET http://127.0.0.1:9200/shopping/_search
{
    "query":{ //表示查询的意思
        "bool":{ //表示条件的意思
            "must":[ //必须满足的条件 意思就是同时满足类别是小米且价格是1999的文档 must表示同时满足 &&
                {
                    "match":{ 
                        "category":"小米"
                    },
                    "match":{
                        "price":1999.00
                	}
                }
            ]
        }
    }
}
GET http://127.0.0.1:9200/shopping/_search
{
    "query":{ //表示查询的意思
        "bool":{ //表示条件的意思
            "should":[ //意思就是满足类别是小米或者类别是华为的文档 满足其一即可 ||
                {
                    "match":{ 
                        "category":"小米"
                    },
                    "match":{
                        "category":"华为"
                	}
                }
            ],
            "filter":{
                "range":{
                    "price":{
                        "gt": 5000
                    }
                }
            }
        }
    }
}

完全匹配&高亮显示
GET http://127.0.0.1:9200/shopping/_doc/_search
{
	"query":{
		"match_phrase":{ //match_phrase代表完全匹配
			"category":"小米"
		}
	},
    "highligth":{
        "field":{
            "category":{}
        }
    }
}
聚合操作
{
    "aggs":{ //表明聚合操作
        "group_name":{ //聚合的名称可以随便写
            "terms":{ //分组
                "field":"price" //分组字段
            }
        }
    }
}
映射

刚开始,我一听这个映射,我懵了,啥叫ElasticSearch中的映射呢?奇怪的很,这玩意呢?

好吧,大概就是一些设置字段能不能被索引,可不可以完整匹配或者模糊匹配,能不能当做索引字段的设置。

GET http://127.0.0.1:9200/user(索引名称)/_mapping
{
    "properties":{
        "name"(字段名):{
             "type":"text", //意思就是name这个字段是text类型,可以被索引
        	"index":true
        },
    	"sex":{
             "type":"keyword", //可以被索引,但由于是keyword内心,得完全匹配
        	"index":true
        },
		"tel":{
             "type":"keyword", //是关键字,但是不能被索引
        	"index":false
        }
    }
}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/457145.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号