ES基本语法
7.2.0版本
1 创建库
http://{ip}:{port}/{库名称} put
2 查询库
http://{ip}:{port}/_cat/indices?v get
health status index uuid pri rep docs.count docs.deleted store.size pri.store.size yellow open test1 uB38fV7yR3ivRcvVrKbfbw 1 1 0 0 230b 230b yellow open test 9tk0aHTYSMWkfGXnNdqjkA 1 1 0 0 283b 283b yellow open secisland pSDO1Fp8Q62LHQvKEXVWlw 1 1 1 0 3.2kb 3.2kb
health:健康度
status:状态
index:索引库
uuid:唯一id
pri:主分片
docs.count:文档数量
docs.deleted:删除文档
3 插入数据
http://{ip}:{port}/test/testlog/1/ put
{
"computer":"secisland",
"message":"success"
}
4 修改文档
http://{ip}:{port}/test/testlog/1/_update/ post
{
"doc": {
"computer": "secisland",
"message": "this is success"
}
}
5 查询文档
http://{ip}:{port}/test/testlog/1/ get
6 删除文档
http://{ip}:{port}/test/testlog/1/ DELETE
7 删除库
http://{ip}:{port}/test/ DELETE
8 创建分片和副分片
http://{ip}:{port}/test_190720/ put
{"settings": {"index": {"number_of_shards": 4,"number_of_replicas": 3}}
或者
{"settings": {"number_of_shards": 4,"number_of_replicas": 3}
9 修改副本数量
http://{ip}:{port}/test_190720/ _settings/ put
{
"number_of_replicas": 1
}
10 删除索引
http://{ip}:{port}//test_190720/ delete
11 创建字段
http://{ip}:{port}/test_190720/ put
{
"mappings": {
"properties": {
"logs": {
"properties": {
"message": {
"type": "text"
},
"date": {
"type": "date"
}
}
}
}
}
}
注意:Elasticsearch从5.X
就引入了text
和keyword
,其中keyword
适用于不分词字段,搜索时只能完全匹配,这时string
还保留着。
到了6.X
就彻底移除string
了。
另外,"index"
的值只能是boolean变量了。
12 获取索引
http://{ip}:{port}/test_190720/ get
查询某个集合
http://192.168.1.10:9200/test_190720/_settings/ get
13 打开或关闭某个索引
打开 http://192.168.1.10:9200/test_190720/_open/ post
关闭 http://192.168.1.10:9200/test_190720/_close/ post
14 映射字段数据类型
字符类型:text
数字类型:long,integer,short,byte,double,float
日期类型:date
布尔型:boolean
二进制:binary
复杂数据类型包括:
数组类型:不需要专门的类型来定义数组
对象数据类型:object,单独的json对象
嵌套数据类型:nested,关于json对象的数组
地理数据类型:
地理点数据类型:geo_point,经纬点
地理形状数据类型:geo_shape,多边形的复杂地理形状
专门数据类型:
ipv4数据类型:ip协议为ipv4的地址
完成数据类型:completion,提供自动补全的建议
单词计树数据类型:token_count,统计字符串中的单词数量
不被分词:keyword
15 字符串数据类型
http://localhost:9200/test_190720/ put
{
"mappings": {
"properties": {
"logs": {
"properties": {
"message": {
"type": "text"
},
"status": {
"type": "keyword"
}
}
}
}
}
}
参数 | 说明 |
analyzer | 分词器可以用于可讽刺的字符串类型字段,默认为默认的索引分词器或者标准分词器 |
boost | 字段级索引加权。接受浮点型数字,默认值是1.0 |
doc_values | 定义字段是否应该以列跨度的方式存储在磁盘上,以便用于排序、聚合或者脚本。接受true或false参数,默认值是true。可分词字段不支持这个参数 |
fielddate | 决定字段是否可以使用内存字段值进行排序,聚合或者在脚本中使用。接受disable或者paged_bytes(默认)参数。没有分析过的字段会优先使用文档值 |
ignore_above | 不要索引或执行任何长于这个值的字符串。默认为0(禁用) |
include_in_all | 决定字段是否应该包含在_all字段中。接受true或者false参数。如果索引被设置为No或者父对象设置Include_in_all为false,参数默认值为False,其他情况下为True |
index | 决定字段是否被用户搜索。接受参数analyzed(默认,视为全文字段),not_analyzed(作为关键字段)以及no |
index_options | 定义存储在索引中,用于搜索和突出用途信息 |
norms | 计算查询得分的时候是否应该考虑字段长度。默认依赖于索引设置:analyzed字段默认为{"enable":true,"loading":"lazy"}。not_analyzed字段默认为{"enable":false} |
null_value | 接受一个字符串值替换所有null值。默认为Null,意味着字段作为缺失字段。如果字段是可分词(analyzed)的,null_value也会被分词 |
posiition_increment_gap | 定义字符串数组中应该插入的虚拟索引词的数量。默认值为100,以一个较合理的值来阻止短语查询在跨字段匹配索引分词的时候溢出 |
store | 决定字段值是否应该被存储以及以_source字段分别获取。接受参数true或false(默认) |
search_analyzer | 指定搜索时用在可分词字段上的分词器 |
search_quote_analyzer | 指定搜索短语时使用的分词器 |
similarity | 指定使用的相似度评分算法,默认为TF/IDF |
term_vector | 定义一个可分词字段是否应该存储索引词向量。默认为no |
16 数字类型
http://localhost:9200/test_190720/ get
{
"mappings": {
"properties": {
"logs": {
"properties": {
"message": {
"type": "text"
},
"status": {
"type": "keyword"
},
"id": {
"type": "integer"
}
}
}
}
}
}
参数 | 说明 |
coerce | 试着将字符串型数据转换为整数型数字数据 |
boost | 字段级索引加权,接受浮点型数字参数,默认为1.0 |
doc_values | 定义字段是否应该以列跨度的方式存储在磁盘上,以便用于排序、聚合或者脚本。接受true(默认)或false参数 |
ignore_malformed | 如果是true,畸形的数字会被忽略。如果是false(默认),畸形数字会抛出异常并丢弃整个文档 |
include_in_all | 决定字段是否应该包含在_all字段中。接受true或false参数。如果索引被设置为No或者父对象字段设置include_in_all为false,参数默认值为false;其他情况下,默认值为true |
index | 决定字段是否可以被用户搜索。接受参数Not_analyzed(默认)以及no |
null_value | 接受与字段同类型的数字型值来代替null值。默认是null。意味着字段作为缺失字段 |
precision_step | 控制索引的额外索引词的数量来使范围查询更快速。默认值取决于数字类型 |
store | 决定字段值是否应该存储以及从_source字段分别获取。接受参数true或false(默认) |