一、常用操作类型
1.创建索引
创建方式有两种:put、post,两者的区别:put 必须包含 _index、_type、_id(自定义), post 只需包含_index、_type,id由ES自动生成;自动生成的 ID 是 URL-safe、 基于 Base64 编码且长度为20个字符的 GUID 字符串。 这些 GUID 字符串由可修改的 FlakeID 模式生成,这种模式允许多个节点并行生成唯一 ID ,且互相之间的冲突概率几乎为零。
put方式
post方式
post、put的区别:
不指定id:put执行报错,post默认自动生成id生成一个新的索引
指定id: 如果id存在两者一样,都是执行update操作,id不存在,都是执行create操作
2.查找索引
查询索引中指定的内容
get ip:端口号/index/type/id?_source=**
例如:http://localhost:9200/pdm_index/pdm/AXGgF67fOMLhodhg64M9/?_source=spName 查找spName
注意多个查找内容之间用逗号分隔
查找索引全部内容
get ip:端口号/index/type/_search
curl命令:
curl -i -XGET http://localhost:9200/pdm_index/pdm/20200422?pretty
在请求的查询串参数中加上 pretty
参数,格式化输出内容
指定索引id查询
查询id=20200422
更新索引内容
created
标志设置成 false
,是因为相同的索引、类型和 ID 的文档已经存在.在内部,Elasticsearch 已将旧文档标记为已删除,并增加一个全新的文档。 尽管你不能再对旧版本的文档进行访问,但它并不会立即消失。当继续索引更多的数据,Elasticsearch 会在后台清理这些已删除文档.
索引更新流程:
- 从旧文档构建 JSON
- 更改该 JSON
- 删除旧文档
- 索引一个新文档
创建索引
A: put/post http://ip:port/index/type/id
B:put/post http://ip:port/index/type/id/_create
A、B两种不同的创建方式区别,A方式类似于saveOrUpdate,有相同的索引则修改,没有则创建;B方式存在相同的索引报错
op_type
查询-字符串参数, 字符串参数目前貌似只能是_create
删除索引
检查是否已删除,再次提交删除或者get 查询索引
删除(索引)文档不会立即将文档从磁盘中删除,只是将文档标记为已删除状态。随着你不断的索引更多的数据,Elasticsearch 将会在后台清理标记为已删除的文档。
二、must, must not,should的区别
must 返回的文档必须满足must子句的条件,类似于 == and
must not返回的文档必须不满足must not 子句的条件 类似于!= not
should 返回的文档只要满足should中的一个条件即可 类似于 || or
三、各类查询参数
term 相当
text 片段
prefix 前缀
wildcard 通配符查询 例:*商品*
fuzzy 区间,分词模糊查询 结合max_expansions 和min_similarity,数值则表示在此数值的增加,减小数量在多少范围之内的数据;字符则为在此自负基础上增加/减少多少字符范围内的数据
range 区间查询,如果type是时间类型,可用内置now表示当前,-1d/h/m/s来进行时间操作
query_string 可以对int, long, string查询,对int,long只能本身查询,对string进行分词和本身查询
missing 返回没有字段或值为null的文档