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
        }
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值