1.新建Mapping,相当于mysql中的字段,区别是ES已有的mapping字段建立后不允许删除和修改
PUT /your_index/
{
"mappings": {
"_doc": {
//默认类型为_doc,可看作mysql的表
"properties": {
"id": {
"type": "keyword" //数据类型 (text、keyword、date、object、geo等)
},
"name": {
"type": "keyword"
}
}
}
},
"settings": {
"index": {
"number_of_shards": 5,
"number_of_replicas": 1
}
}
}
说明:
类型默认为“_doc”,可自定义名称,在elasticsearch 7.0.0版本必须使用单index,单type,多type结构则会完全移除。
数据类型:
1.text:字符串类型,用于全文索引的字段,例如一篇文章或评论,大小写不敏感。
2.long, integer, short, byte, double, float, half_float, scaled_float:数字类型
3.data:时间类型 :常用的时间类型 format 有:epoch_millis(时间戳,精确到毫秒)、epoch_second(时间戳,精确到秒)
4.boolean:布尔类型
5.binary:二进制类型
6.array:json 中的数组,里面可以包含 string、integers、array、objects,如果是 array object,里面包含的对象或数组不会被索引。
7.object:对象
8.nested:array 对象,里面的包含的对象字段会被索引。
9.keyword:精确匹配关键字,大小写敏感
number_of_shards:是指索引要做多少个分片,默认为5,只能在创建索引时指定,后期无法修改,分片类似于数据库中的分库分表,在集群中,同一个索引的分片会均匀的分布在集群的节点中。
number_of_replicas:每个主分片的副本数(备份),默认值是 1,可在后续修改
修改分片:
PUT /your_index/_settings
{
"number_of_replicas": 1
}
refresh_interval:es刷新周期。
设置刷新周期:
PUT /your_index/_settings
{
"refresh_interval": 1s //毫秒:ms、秒:s、分:m
}
重置refresh_interval:(把刷新周期变为默认,即1s)
PUT /your_index/_settings
{
"refresh_interval": null
}
禁止刷新:
PUT /your_index/_settings
{
"refresh_interval": -1
}
手动刷新:
POST /your_index/_doc?refresh
{
//写入、修改数据
}
注意:ES是近实时刷新,如果需要写入大量数据,可以先把刷新周期禁用,写完后再刷新;如果写入日志这种实时性不是很高的数据,可以把刷新周期设置长些。
添加mapping字段(已建立好mapping)
PUT /your_index/_mapping/_doc
{
"properties": {
"your_name": {
"type": "your_type"
}
}
}
删除索引
DELETE your_index/
2.查询语句
match查询:属于全文匹配,ElasticSearch引擎在处理全文搜索时,首先分析(analyze)查询字符串,使用索引映射中定义的分析器对字符串分词,ElasticSearch选择合适的分析器(analyzer),该analyzer和建立索引时使用的分析器相同,然后根据分词构建查询,最终返回查询结果。,
GET your_index/_search
{
"query": {