01-ElasticSearch Rest 方式使用
Rest风格说明
Rest 是一种软件架构风格,而不是标准,只是提供了一组设计原则和约束条件。它主要用于客户端和服务器交互类的软件。基于这个风格设计的软件可以更简洁,更有层次,更易于实现缓存等机制。
基本Rest命令说明
method | url地址 | 描述 |
---|---|---|
PUT(创建,修改) | localhost:9200/索引名称/类型名称/文档id | 创建文档(指定文档id) |
POST(创建) | localhost:9200/索引名称/类型名称 | 创建文档(随机文档id) |
POST(修改) | localhost:9200/索引名称/类型名称/文档id/_update | 修改文档 |
DELETE(删除) | localhost:9200/索引名称/类型名称/文档id | 删除文档 |
GET(查询) | localhost:9200/索引名称/类型名称/文档id | 查询文档通过文档ID |
POST(查询) | localhost:9200/索引名称/类型名称/文档id/_search | 查询所有数据 |
测试
1、创建一个索引
1 |
|
2、字段数据类型
- 字符串类型
- text:支持分词,全文检索,支持模糊、精确查询,不支持聚合,排序操作;text类型的最大支持的字符长度无限制,适合大字段存储;
- keyword:不进行分词,直接索引、支持模糊、支持精确匹配,支持聚合、排序操作。keyword类型的最大支持的长度为——32766个UTF-8类型的字符,可以通过设置ignore_above指定自持字符长度,超过给定长度后的数据将不被索引,无法通过term精确匹配检索返回结果。
- 数值型
- long、Integer、short、byte、double、float、half float、scaled float
- 日期类型
- date
- te布尔类型
- boolean
- 二进制类型
- binary
- 等等…
3、指定字段的类型(使用PUT)
类似于建库(建立索引和字段对应类型),也可看做规则的建立
1 |
|
4、获取3建立的规则
1 |
|
5、获取默认信息
_doc
默认类型(default type),type 在未来的版本中会逐渐弃用,因此产生一个默认类型进行代替如果自己的文档字段没有被指定,那么ElasticSearch就会给我们默认配置字段类型
扩展:通过get _cat/
可以获取ElasticSearch的当前的很多信息!
GET _cat/indices
GET _cat/aliases
GET _cat/allocation
GET _cat/count
GET _cat/fielddata
GET _cat/health
:查看健康度GET _cat/indices
GET _cat/master
GET _cat/nodeattrs
GET _cat/nodes
GET _cat/pending_tasks
GET _cat/plugins
GET _cat/recovery
GET _cat/repositories
GET _cat/segments
GET _cat/shards
GET _cat/snapshots
GET _cat/tasks
GET _cat/templates
GET _cat/thread_pool
6、修改
修改一共有两种方案
6.1 旧的(使用put覆盖原来的值)
注意:
- 版本+1(_version)
- 但是如果漏掉某个字段没有写,那么更新是没有写的字段会消失
1 |
|
6.2 新的(使用post的_update)
注意:
- version不会改变
- 需要注意doc
- 不会丢失字段
1 |
|
7、删除索引
DELETE /test1
8、查询(简单条件)
1 |
|
9、复杂查询
test3索引中的内容
9.1 查询匹配
match
:匹配(会使用分词器解析(先分析文档,然后进行查询))_source
:过滤字段sort
:排序form
、size
分页
1 |
|
9.2 多条件查询(bool)
must
相当于and
,所有条件都要符合should
相当于or
,只要符合一个就可以must_not
相当于not (... and ...)
filter
过滤- gt:大于
- gte:大于等于
- lt:小于
- lte:小于等于
1 |
|
9.3 匹配数组
- 貌似不能与其它字段一起使用
- 可以多关键字查(空格隔开)— 匹配字段也是符合的
match
会使用分词器解析(先分析文档,然后进行查询)
1 |
|
9.4 精确查询
精确查询(必须全部都有,而且不可分,即按一个完整的词查询)
term查询是直接通过倒排索引指定的词条进程精确的查找的。
- term:直接取精确的
- match:会使用分词器解析。先分析文档,然后再通过分析的文档进行查询。
两个类型:text,keyword
- keyword不会被分词器解析,text会被分词器解析
1 |
|
9.5 text和keyword
- text:
- 支持分词,全文检索、支持模糊、精确查询,不支持聚合,排序操作;
- text类型的最大支持的字符长度无限制,适合大字段存储;
- keyword:
- 不进行分词,直接索引、支持模糊、支持精确匹配,支持聚合、排序操作。
- keyword类型的最大支持的长度为——32766个UTF-8类型的字符,可以通过设置ignore_above指定自持字符长度,超过给定长度后的数据将不被索引,无法通过term精确匹配检索返回结果。
1 |
|
9.6 高亮查询
1 |
|
01-ElasticSearch Rest 方式使用
https://flepeng.github.io/041-ElasticSearch-31-语法-01-ElasticSearch-Rest-方式使用/