ElasticSearch的下载与普通命令
1、下载地址
需要注意,7.17.3之后的版本需要jdk17
7.17.3需要win8和最低node.js 12.0.0版本https://www.elastic.co/cn/downloads/past-releases/elasticsearch-7-17-3
2、启动
访问 http://localhost:9200/
正确后:
3、使用postman进行
(1)使用put创建索引
(2)查询索引Get
(3)查询所有的索引 GET
(4)删除索引 DELETE
(5)在指定的索引中创建文档 POST
选择post,且选择json的形式,id是随机生成的
http://localhost:9200/shopping/_doc
指定生成的id
http://localhost:9200/shopping/_doc/1000001
在指定索引中用create创建文档
http://localhost:9200/shopping/_create/1000002
(6)查询索引下面的文档 GET
http://localhost:9200/shopping/_search
(7)更新 PUT
http://localhost:9200/shopping/_doc/1000001
(8)条件查询
普通查询
http://localhost:9200/shopping/_search
{
"query":{
"match":{
"category":"社交软件"
}
}
}
全部匹配查询
我们会发现,就连爱奇艺为视频软件都查询出来了,其实这是分词查询了,如果要全部匹配的话,就要改成
{
"query":{
"match_phrase":{
"category":"社交软件"
}
}
}
分页条件查询
在此基础上,再进行分页查询
http://localhost:9200/shopping/_search
{
"query":{
"match_phrase":{
"category":"社交软件"
}
},
"from":0,
"size":2
}
分页条件排序查询
在此基础上,我们对价格进行降序
{
"query":{
"match_phrase":{
"category":"社交软件"
}
},
"sort":{
"price":"desc"
},
"from":0,
"size":2
}
多个条件组合查询
{
"query":{
"bool":{
"must":[
{"match":{
"price":30000.00
}}
],
"must_not":[
{"match":{
"title":"小红书"
}}
]
}
}
}
范围查询
{
"query":{
"bool":{
"must":[
{"match_all":{}}
],
"filter":{
"range":{
"price":{
"gte":2000.00,
"lte":5000
}
}
}
}
}
}
范围查询后指定显示什么字段
{
"query":{
"bool":{
"must":[
{"match_all":{}}
],
"filter":{
"range":{
"price":{
"gte":2000.00,
"lte":5000
}
}
}
}
},
"_source":["title"]
}
高亮
{
"query":{
"match":{
"category":"社交软件"
}
},
"highlight":{
"fields":{
"category":{}
}
}
}
聚合查询
{
"aggs":{
"price_group":{
"terms":{
"field":"price"
}
}
}
}
查询平均值
{
"aggs":{
"price_avg":{
"avg":{
"field":"price"
}
}
}
}
创建user索引之后设置其映射类型
{
"properties":{
"name":{
"type":"text",
"index":true
},
"sex":{
"type":"keyword",
"index":true
},
"tel":{
"type":"keyword",
"index":false
}
}
}
创建文档
sex为“男的”是为了全部匹配
查询
查询tel的时候会发现不是index是不允许查询的
查询性别为“男”发现找不到
查询性别为张的,就可以找到