Elastic search 基础操作
一、索引index
1、创建索引
PUT /test1/type1/1
{
"name":"bobwang",
"age":22
}
2、指定字段类型
字段类型:
字符串类型:text, keyword
数值类型:long, integer,short,byte, double,float,half,scaled, float
布尔类型:boolean
二进制类型:binary
…
eg:
指定索引index的字段类型
PUT /test2
{
"mappings": {
"properties": {
"name":{
"type": "text"
},
"age":{
"type":"long"
},
"brithday":{
"type": "date"
},
"marrued":{
"type":"boolean"
}
}
}
}
#out
{
"acknowledged" : true,
"shards_acknowledged" : true,
"index" : "test2"
}
get 查看
GET /test2
# out
{
"test2" : {
"aliases" : { },
"mappings" : {
"properties" : {
"age" : {
"type" : "long"
},
"brithday" : {
"type" : "date"
},
"marrued" : {
"type" : "boolean"
},
"name" : {
"type" : "text"
}
}
},
"settings" : {
"index" : {
"creation_date" : "1592119203342",
"number_of_shards" : "1",
"number_of_replicas" : "1",
"uuid" : "k5pMbsUdSTa8RRzXPrXHpw",
"version" : {
"created" : "7060199"
},
"provided_name" : "test2"
}
}
}
}
如果字段没有指定, es会自己默认配置字段类型
通过get _cat/查看es的当前信息
GET _cat/indices?v
3、修改
曾今的方法put
PUT /test2/_doc/1
{
"name":"wang",
"age":23,
"brithday":"2000-01-01",
"married":"false"
}
现在的方法post
POST /test2/_doc/1/_update
{
"doc":{
"name":"bobwang"
}
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0wBtOkd9-1592449903565)(/Users/bobwang/Library/Application Support/typora-user-images/image-20200614155902035.png)]
4、删除索引
delete
DELETE test2
二、文档操作
1、添加数据 put
PUT /bob/user/1
{
"name":"bobwang",
"age":22,
"marreid":false
}
out
pplication Support/typora-user-images/image-20200614160947296.png)]
es给默认匹配的类型
2、获取数据 get
GET /bob/user/1
3、更新数据 put and post _update
Put直接覆盖原来的跟索引类似
PUT /bob/user/1
{
"name":"bobwang",
"age":27,
"marreid":false
}
post _update 直接修改某个字段 (推荐使用)
POST /bob/user/1/_update
{
"doc":{
"marreid":true
}
}
4、搜索
1)简单搜索
# 将 索引bob下在user文档(相当于mysql的表table)下的所有消息找出
GET bob/user/_search
# 查询条件是name=bobwang
GET bob/user/_search?q=name:bobwang
分数表示:如过匹配出多个结果,如果结果的匹配度越高,分值就越高
hits:包含了索引和文档的信息,查询的结果总数,当里面包含多条时,可以遍历出来。
2)复杂操作搜索 select(排序,分页,高亮,模糊查询,精准查询)
GET bob/user/_search
{
"query":{
"match":{
"name": "bobwang"
}
}
}
# 匹配的条件采用 json格式
a、过滤查询结果中的字段,选择性的展示 _source:[(字段list)]
GET bob/user/_search
{
"query":{
"match":{
"name": "bobwang"
}
},
"_source":["age","marreid"]
}
b、排序 asc 生序 desc 降序
GET bob/user/_search
{
"query":{
"match":{
"name": "bob"
}
},
"sort": [
{
"age": {
"order": "asc"
}
}
]
}
c、分页
e、布尔查询
1、must(and):所有的条件都要符合
2、should(or):或
3、must_not(not)
5、过滤器 filter
多条件
6、匹配多个
7、精准查询
term查询时直接通过倒排索引指定的词条进行精确查找的
关于分词:
- term:直接查询精确的
- match:会只用分词器解析(先分许文档,然后再通过分析的文档进行查询)
match
两个类型:
standard
keyword
[
8、多个值匹配精确查询
10、高亮查询
自定义高亮显示格式
5、删除数据 delete
DELETE bob/user/1
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bdVEqkVp-1592449903587)(/Users/bobwang/Library/Application Support/typora-user-images/image-20200614185150354.png)]