Elasticsearch-索引新数据(创建索引、添加数据)
ES-索引新数据
0.通过mapping映射新建索引
CURL -XPOST 'localhost:9200/test/index?pretty' -d '{ "mappings": { "docs": { "_source": { "excludes": [ "query_content" ] }, "properties": { "legalbasis": { "enabled": false }, "query_content": { "doc_values": false, "search_analyzer": "ik_smart", "type": "text", "analyzer": "ik_smart" }, "updatetime": { "enabled": false }, "openlaw_seq": { "enabled": false }, "url": { "enabled": false }, "doctype": { "enabled": false }, "modify_time": { "type": "date", "format": "yyyy-MM-dd HH:mm:ss||yyyy-MM-dd||epoch_millis" }, "fact": { "enabled": false } } } }, "settings": { "index": { "number_of_replicas": "0", "number_of_shards": "6", "refresh_interval": "10s", "translog": { "durability": "async", "flush_threshold_size": "1g" } } } }'
1.通过curl索引一篇文档
curl是一个命令行工具,通过HTTP协议传送数据。使用curl命令发送HTTP请求。
索引一篇文档
FengZhendeMacBook-Pro:bin FengZhen$ curl -XPOST -H "Content-Type: application/json 'http://localhost:9200/get-together/group/1?pretty' -d '{
> "name":"ES Test", > "organizer":"Feng" > }' { "_index" : "get-together", "_type" : "group", "_id" : "1", "_version" : 1, "_shards" : { "total" : 2, "successful" : 1, "failed" : 0 }, "created" : true }
ES自动添加了get-together索引,并且为group类型创建了一个新的映射。映射包含字符串字段的定义。默认情况下,ES处理所有这些,无需任何事先的配置,就可以开始索引。若有需要,可改变这一配置
2.创建索引和映射类型
(1). 手动创建索引
FengZhendeMacBook-Pro:bin FengZhen$ curl -XPUT ‘http://localhost:9200/music’ {“acknowledged”:true}
创建索引本身比创建一篇文档要花费更多时间,提前创建索引的另一个理由是想指定和ES默认不同的配置,例如:确定分片的数量。
(2). 获取映射
映射是随着新文档而自动创建的,而且ES自动的将name和organizers字段识别为字符串。如果添加新文档的同事添加另一个新的字段,ES也会猜测它的类型,并将其附加到映射。
为了查看当前的映射,发送一个HTTP GET请求到该索引的_mapping端点。这将展示所有类型的映射,但是可以通过在_mapping端点后指定类型的名字来获得某个具体的映射。
FengZhendeMacBook-Pro:bin FengZhen$ curl 'localhost:9200/get-together/_mapping/group?pretty' { "get-together" : { "mappings" : { "group" : { "properties" : { "name" : { "type" : "string" }, "organizer" : { "type" : "string" } } } } } }
返回的结果包括如下相关数据
索引名称:get-together
类型名称:group
属性列表:name和organizer
属性选项:两个属性的type都是string