本文,本文重在扫盲,从简单的添加索引、创建mapping、增、删、改、查、分页、聚合、嵌套查询等常用的语法切入,把大家带入到Elastic search的使用,让我们对es有个大概的体感。
目录
以上mapping的设置,涵盖了四种常用的数据类型。对每种数据类型查询做下分析
1.简单数据类型:如上述示例中的goodsId,goodsName
2.对于type为long,数组形式存储的但属性值的查询。如上述示例中的buIds,主要为java对象中List buIds 的用法
3.object类型和nested类型的查询(上述示例中的manager和managers)
1.通过put插入索引的方式,指定id后,把要改的字段,全都写一遍,重新进行索引,如果是新增的字段,如果索引模式设置了自动适配就会新增该字段(默认是新增)。相同的字段进行更新,缺少的字段更新为空
2.通过update by query语句进行更新,示例如下
六.删除语句 delete by query 语句进行,务必要加条件,不然会删除所有数据,慎用
一、添加索引
语法:PUT 你的索引名称
示例:PUT goods_for_test_use
二、设置mapping
属性映射类型可参考:
https://www.elastic.co/guide/en/elasticsearch/reference/current/mapping-types.html
示例
PUT goods_for_test_use/goods_for_test/_mapping
{
"properties": {
"goodsId":{
"type": "keyword"
},
"goodsName":{
"type": "keyword"
},
"buIds":{
"type": "long"
},"gmv":{
"type": "double"
},
"manager":{
"type": "object",
"properties": {
"firstName":{"type":"keyword"},
"secondName":{"type":"keyword"},
"age":{"type":"long"}
}
},
"managers":{
"type": "nested",
"properties": {
"firstName":{"type":"keyword"},
"secondName":{"type":"keyword"},
"age":{"type":"long"}
}
}
}
}
三、插入数据
插入数据,只要根据mapping设置的数据类型,组装相应的json串即可,见示例代码
##插入数据第一条数据,这里的1表示的是索引中文档的id,可根据业务语义设置即可,如使用商品id
PUT goods_for_test_use/_doc/1
{
"goodsId":"222",
"goodsName":"测试商品名称2",
"buIds":[1,2,3],
"gmv":333,
"manager":[
{
"firstName":"lei",
"secondName":"teng"
},
{
"fistName":"zhang",
"secondName":"san"
}
],
"managers":[
{
"firstName":"lei",
"secondName":"teng",
"age":30
},
{
"firstName":"zhang",
"secondName":"san",
"age":18
},
{
"firstName":"lei",
"secondName":"san",
"age":18