文档的CURD
- index
- PUT my_index/_doc/1 {"user":"xxx", ....} -- 如果id不存在,会创建新的文档,否则会删除现有文档,再创建新的文档,版本会增加
- create
- PUT my_index/_create/1 {"user":"xxx", ....} -- 如果id已经存在,会失败
- POST my_index/_doc {"user":"xxx", ....} -- 不指定id,自动生成
- read
- GET my_index/_doc/1
- update
- POST my_index/update/1 {"doc":{"user": "xxx", ...}} -- 文档必须已经存在,更新只会对相应字段做增量修改
- delete
- DELETE my_index/_doc/1
Create 一个文档
POST {index}/_doc PUT {index}/_create/{id}
- 支持自动生成文档ID和指定文档id
- 通过调用POST my_index/_doc
- 系统会自动生成id
- 通过调用PUT my_index/_create/1
- URI中显示指定_create,如果id重复则操作失败
Get 一个文档
GET {index}/{index_id}
- 找到文档,返回http 200
- 文档元信息
- _index / _type /
- 版本信息,同一个id的文档,即使被删除Version也会增加
- _source 中默认包含了文档的所有原始信息
- 文档元信息
- 找不到文档,返回http 404
Index 文档
PUT {index}/_doc/{id}
- index和create不一样的地方,如果文档不存在就索引新的文档,否则现有的文档就会被删除,新的文档被索引,版本信息 1
Update 文档
- Updata 方法不会删除原来的文档,而是实现真正的数据更新
- Post 方法 /Payload 需要包含在"doc"中
Bulk API
- 支持在一次API调用中,对不同的索引进行操作
- 支持4种类型操作
- index
- create
- update
- delete
- 可以再URI中指定index,也可以在请求的pylload中进行
- 操作中单条操作失败,并不会影响其他操作
- 返回结果包括了每一条操作执行的结果
mget 批量读取
- 批量操作,可以减少网络连接产生的开销,提高性能
msearch 批量读取
常见错误返回
- 无法连接 :网络故障,或者集群挂了
- 连接无法关闭: 网络故障或节点出错
- 429:集群过于繁忙
- 4xx:请求体格式错误
- 500:集群内部错误
Analysis分词器
- analysis - 文本分析是把文本转换一系列单词的过程,也叫分词
- analysis 是通过 analyzer实现的
- 除了在数据写入时转换词条,匹配query预计的时候也需要用相同的分词器对查询语句进行分词
- anlyzer的组成
- character filters:针对原始文本处理,例如去除html
- tokenizer:按照规则切分单词
- token filters:将切分的单词进行加工,小写,删除stopwords 增加同义词
- 使用_analyzer api
- 直接指定anlyer进行测试
- 指定索引的字段进行测试
- 自定义分词器进行测试