当前位置: 首页 > news >正文

深圳建网站三千新蔡县住房和城乡建设局网站

深圳建网站三千,新蔡县住房和城乡建设局网站,网页布局实例,国内体育新闻最新消息ElasticSearch入门到实战教程:点击查看 1. 对象类型(object) 一个字段下需要多种类型的属性字段,属性 attr 有身高、体重,添加映射语句如下: POST indexname/_mapping {"properties": {"…

ElasticSearch入门到实战教程:点击查看

1. 对象类型(object)

一个字段下需要多种类型的属性字段,属性 attr 有身高、体重,添加映射语句如下:

POST indexname/_mapping
{"properties": {"attr": {"properties": {"height": {"type": "double"},"weight": {"type": "double"}}}}
}

对象类型新增数据语法

PUT indexname/_doc/1
{"attr": {"height": 176.3,"weight": 64}
}

筛选查询新增的数据

GET indexname/_search
{"query":{"term":{"attr.weight": "64"}}
}

2. 数组类型

ELasticsearch没有专用的数组类型,默认情况下任何字段都可以包含一个或者多个值,但是一个数组中的值要是同一种类型。

  • 字符数组: [ “one”, “two” ]
  • 整型数组:[1,3]
  • 对象数组:[ { “name”: “长度”, “value”: “10” }, { “name”: “内存”, “value”: “16” }]

keyword数组,创建keyword字段

POST indexname/_mapping
{"properties": {"skills": {"type": "keyword"}}
}

新增数据

PUT indexname/_doc/2
{"skills": ["java", "c++"]
}

对象数组,创建对象字段

POST indexname/_mapping
{"properties": {"attrs": {"properties": {"name": {"type": "keyword"},"value": {"type": "keyword"}}}}
}

新增数据

PUT indexname/_doc/3
{"attrs": [{"name": "长度","value": "10"},{"name": "内存","value": "16"}]
}

3. 嵌套文档(nested)

nested嵌套类型是object中的一个特例,可以让对象数组类型独立索引和查询。

项目场景中弥补对象数组的一些查询问题

接着前面创建的对象数组 attrs 先添加几条数据

POST _bulk
{"create":{"_index":"indexname","_id":20}}
{"attrs":[{"name":"长度","value":"64"},{"name":"内存","value":"32"}]}
{"create":{"_index":"indexname","_id":21}}
{"attrs":[{"name":"长度","value":"64"},{"name":"内存","value":"64"}]}
{"create":{"_index":"indexname","_id":22}}
{"attrs":[{"name":"长度","value":"64"}]}

现在业务需求:需要 属性=长度 且 值=32 的数据(目前数据里没有),我们来写查询语法。

GET indexname/_search
{"query": {"bool": {"must": [{"term": {"attrs.name": "长度"}},{"term": {"attrs.value": "32"}}]}}
}

运行后发现居然有数据,为什么呢?我们后面原理篇会讲。

怎么解决这种问题呢?使用 nested 类型即可解决。

添加映射字段

POST indexname/_mapping
{"properties": {"attrsNested": {"type": "nested","properties": {"name": {"type": "keyword"},"value": {"type": "keyword"}}}}
}

添加几条数据

POST _bulk
{"create":{"_index":"indexname","_id":20}}
{"attrsNested":[{"name":"长度","value":"64"},{"name":"内存","value":"32"}]}
{"create":{"_index":"indexname","_id":21}}
{"attrsNested":[{"name":"长度","value":"64"},{"name":"内存","value":"64"}]}
{"create":{"_index":"indexname","_id":22}}
{"attrsNested":[{"name":"长度","value":"64"}]}

查询数据

GET indexname/_search
{"query": {"nested": {"path": "attrsNested","query": {"bool": {"must": [{"term": {"attrsNested.name": "长度"}},{"term": {"attrsNested.value": "32"}}]}}}}
}

已经查不到数据了,问题完美解决

4. 子字段

text类型不能用于排序、聚合。为什么呢?因为它的属性 fielddata 默认是false,设置为true就可以了,但是不建议使用,会增加内存的压力。

添加字段映射(不建议设置true):

POST indexname/_mapping
{"properties": {"address": {"type": "text","fielddata":true}}
}

直接使用 keyword 类型可以进行排序、聚合。

想必会有同学有疑问:

同样是字符串类型,干脆直接都用keyword类型不就行了。

如果你不需要 分词 那么你用keyword完全可以,如果你需要对字段值分词,那你还是需要用text。

那么有没有不增加压力,而且不用两个字段的方法呢? 当然有,就是做子字段!

POST indexname/_mapping
{"properties": {"address": {"type": "text","fields": {"keyword": {"type": "keyword","ignore_above": 256}}}}
}

address 字段下增加了 keyword 名字的字段,类型是 keyword,设置256长度

对应查询子字段keyword的语句

GET indexname/_search
{"query": {"term":{"address.keyword": ""}}
}

5. 地理类型

geo_point 是地理类型。移动互联网的时代,移动设备越来越多,要根据地理位置搜索地址,可以把地址的经纬度数据设置地理数据类型。

POST indexname/_mapping
{"properties": {"location": {"type": "geo_point"}}
}

添加一条地理位置数据

PUT indexname/_doc/6
{"location": {"lat": 41.07,"lon": 116.64}
}
  • lat(经度)
  • lon(纬度)

根据(41.07,116.14)坐标,查询100km内的位置信息

GET indexname/_search
{"query": {"geo_distance": {"distance": "100km","location": {"lat": 41.07,"lon": 116.14}}}
}

根据(23.6,32.2)位置,对查询结果进行远近排序

GET indexname/_search
{"query": {"match_all": {}},"sort": [{"_geo_distance": {"location": "23.6,32.2","unit": "km"}}]
}

更多资料请看《ElasticSearch入门到实战教程》:点击查看

http://www.yayakq.cn/news/499345/

相关文章:

  • 河南卓越建设工程有限公司网站网站不备案可以建设吗
  • 网站焦点图制作教程上海猎头公司排名
  • 泰安网站建设定制公司网站开发7个基本流程图
  • 广东省建设网站网站毕业设计代做
  • 网站建设app开发 微信小程序 网站开发 自动脚本电子商务网站
  • 卡盟网站怎么做图片素材惠州建设网站
  • 安徽省高等级公路工程建设指挥部网站重庆做网站找谁
  • 网站数据库迁移南城区仿做网站
  • 秦皇岛网站设计公司网站怎样做wap端
  • 想学电商从什么学起seo优化视频教程
  • 重庆市住房和城乡建设厅网站首页临沂网站
  • 安徽省建设监理协会网站禁用wordpress插件更新
  • 网站设计步骤及图解丽水做企业网站的地方
  • 网站建设行业发展四川省建设网站建筑电工
  • 旅游网站模板 手机医疗类网站还有做seo
  • 网站开发交接清单wordpress手机h5主题
  • 开发手机应用网站郑州专业seo哪家好
  • 泰州网站建设报价邯郸建公司网站价格
  • 网站开发价格对比团购网站建立
  • 在线做简单的网站吗dw做网页教程
  • 网站建设原型php用什么做网站服务器
  • 网站建设课程学习家装风格效果图大全
  • 移动端网站构成要素优就业seo怎么样
  • 成品网站怎么新建网页网站优化什么意思
  • 太原网站制作哪家好淮北市建筑
  • 专业信息门户网站定制网站建设访问人群
  • 连锁品牌网站建设免费注册邮箱
  • 九江建网站报价淘宝网站建设的目标
  • 上海建科建设监理网站高端电子网站建设
  • 一个公司优化需要做多少个网站爱搜索中级网站建设