目录
ES的创建索引
cpp
POST /user/_doc
{
"settings": { 配置索引级别参数
"analysis": { 配置文本分析器
"analyzer": { 定义分词器类型
"ik": { ik就是采用中文分词器
"tokenizer": "ik_max_word" IK分词器的最大粒度模式
}
}
}
},
"mappings": { 定义索引的映射
"dynamic": true, 允许自动添加新字段,这个字段照着写就完事了
"properties": { //这个里面的就是所有字段,包括可匹配项和不可匹配项
"昵称": { 字段
"type": "text", 关键字字段类型, text就是文本类型就是string,会被分词,支持全文搜索
"analyzer": "ik_max_word" 使用上面定义的 ik 分词器
},
"用户ID": {
"type": "keyword", 关键字类型,就是string,不分词,整体匹配
"analyzer": "standard" 使用默认的标准分词器
},
"手机号": {
"type": "keyword",
"analyzer": "standard"
},
"描述": {
"type": "text",
"enabled": false 禁用该字段!不会被索引,也不能被搜索,仅存储
},
"头像ID": {
"type": "keyword",
"enabled": false
}
}
}
}
创建索引及关键字时使用POST /user/_doc 进行post请求 /user是自定义索引名,/_doc是索引类型,都这么写的。
ES的插入
cpp
POST /user/_doc/_bulk 最后一个/_bulk是批量插入的标记,如果只插入一条就不用了
{"index":{"_id":"1"}} 先插入一个id作为index
{"user_id":"USER4b862aaa-2df8654a-7eb4bb65e3507f66","nickname":"昵称1","phone":"13800000001","description":"签名1","avatar_id":"头像1"} //到这里算一条信息
{"index":{"_id":"2"}}
{"user_id":"USER14eeeaa5-442771b9-0262e455e4663d1d","nickname":"昵称2","phone":"13800000002","description":"签名2","avatar_id":"头像2"}
{"index":{"_id":"3"}}
{"user_id":"USER484a6734-03a124f0-996c169dd05c1869","nickname":"昵称3","phone":"13800000003","description":"签名3","avatar_id":"头像3"}
{"index":{"_id":"4"}}
{"user_id":"USER186ade83-4460d4a6-8c08068f83127b5d","nickname":"昵称4","phone":"13800000004","description":"签名4","avatar_id":"头像4"}
{"index":{"_id":"5"}}
{"user_id":"USER6f19d074-c33891cf-23bf5a8357189a19","nickname":"昵称5","phone":"13800000005","description":"签名5","avatar_id":"头像5"}
{"index":{"_id":"6"}}
{"user_id":"USER97605c64-9833ebb7-d045535335a59195","nickname":"昵称6","phone":"13800000006","description":"签名6","avatar_id":"头像6"}
KV形式的插入,中间用,隔开其中不可以换行。
ES的搜索
ES的全文搜索
cpp
POST /user/_doc/_search
{
"query": { 查询的根对象,所有查询条件都放在里面
"match_all": {} 匹配所有文档,没有过滤条件
}
}

ES的过滤搜索
cpp
POST /user/_doc/_search?pretty
{
"query": {
"bool": { bool查询组合多个查询条件
"must_not": [ 严格不可匹配项
{
"terms": { 多值精确匹配,匹配项如下
"user_id.keyword": [ 不可匹配中的字段,加上keyword防止其内容分词导致不严格
"USER4b862aaa-2df8654a-7eb4bb65e3507f66",
"USER14eeeaa5-442771b9-0262e455e4663d1d",
"USER484a6734-03a124f0-996c169dd05c1869"
]
}
}
],
"should": [ 可选匹配项,任意一个字段匹配或者模糊匹配上就可以
{
"match": { 匹配字段
"user_id": "昵称"
}
},
{
"match": {
"nickname": "昵称"
}
},
{
"match": {
"phone": "昵称"
}
}
]
}
}
}
