创建一个文档
PUT/索引名/--类型名--/文档id{请求体}

完成了自动增加索引数据也成功的添加了
配置字段类型
PUT/test2{"mappings":{"properties":{"name":{"type":"text"},"age":{"type":"long"},"birthday":{"type":"date"}}}}查
查看数据
POST/test3/_search
查看字段类型
GETtest2
默认字段类型
添加数据PUT/test3/_doc/1{"name":"SkyID","age":21,"birth":"-08-23"}查看自动分配的字段类型
如果自己的文档字段没有指定,那么es就会给我们默认配置字段类型
扩展:通过命令elasticsearch索引情况通过GET_cat/可以获取当前es的更多信息
根据指定内容匹配
#根据name进行搜索(简单查询)GET/sky/user/_search?q=name:Sky#对于复杂条件标准写法_source选择展示的数据sort为排序#from和size为分页功能#from表示从第几个数据开始size表示返回多少条数据(单页面数据)GET/sky/user/_search{"query":{"match":{"name":"Sky"}},"_source":["name","desc"],"sort":[{"age":{"order":"desc"}}],"from":0,"size":1}
布尔值查询
多条件查询must(相当于and),所有的条件都要符合
GET/sky/_search{"query":{"bool":{"must":[{"match":{"name":"潭"}},{"match":{"age":"2"}}]}}}
多条件查询should(相当于or),满足一个就可以
GET/sky/_search{"query":{"bool":{"should":[{"match":{"name":"潭"}},{"match":{"age":"2"}}]}}}
多条件查询must_not(相当于not),满足一个就可以
GET/sky/_search{"query":{"bool":{"must_not":[{"match":{"name":"潭"}},{"match":{"age":"2"}}]}}}
过滤器filter(gt大于、gte大于等于、lt小于、lte小于等于、eq等于)
GET/sky/_search{"query":{"bool":{"must":[{"match":{"name":"潭"}}],"filter":[{"range":{"age":{"gt":10}}}]}}}
多条件查询多个条件使用空格隔开进行查询只要满足其一便可被查出来通过分值进行基本的判断
GET/sky/_search{"query":{"match":{"tags":"男王"}}}
精确查询
term查询是直接通过倒排索引指定的词条进程精确查找的
关于分词:
term,直接查询精确搭配keyword使用
match会使用分词器解析(先分析文档,然后在通过分析的文档进行查询)
「两个类型textkeyword」
创建测试文档
#设定索引类型PUT/testdb{"mappings":{"properties":{"name":{"type":"text"},"desc":{"type":"keyword"}}}}#添加两条数据用于测试PUT/testdb/_doc/1{"name":"李维昊","desc":"我是一个程序员"}PUT/testdb/_doc/2{"name":"李维昊2","desc":"我是一个程序员2"}
查询name(text类型)
GETtestdb/_search{"query":{"term":{"name":"李"}}}
两条信息均有返回
查询desc(keyword类型)
GETtestdb/_search{"query":{"term":{"desc":"我是一个程序员"}}}
返回结果仅为一个
并且如果我们改为单字搜索发现
GETtestdb/_search{"query":{"term":{"desc":"程"}}}
发现无返回结果
高亮查询
GETtestdb/_search{"query":{"match":{"name":"李维昊"}},"highlight":{"fields":{"name":{}}}}
查看返回结果发现「李维昊」添加了标签
同样的我们可以自定义返回标签
GETtestdb/_search{"query":{"match":{"name":"李维昊"}},"highlight":{"pre_tags":"p","post_tags":"/p","fields":{"name":{}}}}改
在ElasticSearch当中我们有可以使用两种方式进行数据修改
重新使用PUT值进行添加数据
首先查询文档当前内容
POST/test3/_search
使用PUT重新添加数据(将名字修改)
PUT/test3/_doc/1{"name":"WeiHao.L","age":21,"birth":"-08-23"}
执行指令,通过es返回的json信息我们可以看到其中的version版本变为了2。证明我们此索引数据进行了更新
再次使用search进行查询,更新成功
但是这种方式的缺点为如果我们忘记输入某一项的值会出现单条记录被清空的情况(如图name被清空)
使用POST方法进行update
此方法仅需将需要更新的数据进行发送请求即可
POST/test3/_doc/1/_update{"doc":{"name":"Sky"}}
更新成功
删DELETEtest1WeiHaoLee