新闻详细
新闻当前位置:新闻详细

上海市二套房贷款查询所需材料|如何在 ES 中实现嵌套json对象查询,一次讲明白!

上海正规银行机构放款——上海贷款

电话微信: 13501647909 ,欢迎咨询上海市二套房贷款查询所需材料,当天放款,[公积金贷最低2.55%额度300万-1000万|公积金提取],[法人贷年化3.8%额度最高1000万],[企业贷贷5%最高1000万],[房产抵押贷最低3%],[大额垫资万6元每天],[车抵GPS或不押车]

2023年上海考生高考成绩分布表公布,619分及以上48人

刚才,上海市教育考试院公布了2023年考生高考成绩分布表。其中,619分及以上考生48人。

考生高考成绩分布表(思想政治、历史、地理、物理、化学、生物学),考生可登录“2023年高考志愿辅助填报系统”查询。

请登录“上海招考热线”网站查询2023年艺体考生成绩分布情况。

如果你最近也在看公寓,一定要知道二手房买房的流程,来吧...

上海购房流程。

购房过程非常复杂。本文将全面介绍从看房到入住的15个环节。对于第一次买房的人来说,这篇文章非常有价值。建议收集并表扬它。本文将详细介绍从看房到入住新家的15个环节。直接去干货没有废话。

·1:查征信。

·2:确定预算。

·3:确定片区。

·4:网上筛选房源。

·5:实地看房。

·6:比较几套房子的优缺点。

·7:选择最满意的房子,了解税费、首付和付款方式。

·8:与业主协商,签订购房合同,确定付款时间。

·9:支付定金,核实产权、产权调和产权证书。

·10:准备材料,签订合同,申请贷款。

·11:转让、交房、结算费用。

·12:纳税,领取产证。

·13:等贷款,按时还款。

·14:安排新家并入住,享受新家的喜悦。

·15:举行搬家仪式,邀请亲友聚会,共同庆祝新家落成。

完成上述流程后,您将拥有自己的房子。如有疑问,请在评论区留言或私信给我。

如何在 ES 实现嵌套json对象查询,一次解释!

项目需求

在软件项目开发的实际过程中,由于业务需要,我们的数据库表和表之间的结构是一对多的。以订单表中的数据为例,在mysql数据库中,它们的关系如下图所示:

如果在mysql中查询,可以用join语句来实现;ES本身就是平铺的NoSQL,对于这个1:如何实现N的关联关系?

需求落地

常用的实践方案有三种:

●嵌套对象

●嵌套文档

●父子文档

嵌套对象

先看看它看起来像什么样子

"order_id":{

"type":"keyword"

"cancel_time":{

"type":"date",

"format":"yyyy-MM-ddHH:mm:ss"

"order_status":{

"type":"keyword"

"completed_time":{

"type":"date",

"format":"yyyy-MM-ddHH:mm:ss"

"create_time":{

"type":"date",

"format":"yyyy-MM-ddHH:mm:ss"

"is_delete":{

"type":"keyword"

"modify_time":{

"type":"date",

"format":"yyyy-MM-ddHH:mm:ss"

"order_user":{

"properties":{

"name":{

"type":"text",

"analyzer":"ik_max_word"

"tel":{

"type":"text",

"analyzer":"ik_max_word"

"user_id":{

"type":"keyword"

如何在ES中筛选嵌套对象?请看示例

POSTorder_index/_search

"query":{

"bool":{

"must":[

上海市二套房贷款查询所需材料

"match":{

"order_user.name":"张三"

"match":{

"order_user.tel":""

优点:查询时不涉及join,查询效率很高

缺点:由于json对象数组的处理是压扁的,存储在平面键对列表中,因此缺乏相关性。

嵌套文档

先看看它看起来像什么样子

"address_list":{

"type":"nested",

"properties":{

"city_id":{

"type":"keyword"

"city_name":{

"type":"text",

"analyzer":"ik_max_word"

"district_id":{

"type":"keyword"

"district_name":{

"type":"text",

"analyzer":"ik_max_word"

"lat":{

"type":"geo_point"

"lon":{

"type":"geo_point"

"name":{

"type":"text",

"analyzer":"ik_max_word"

"province_id":{

"type":"keyword"

"province_name":{

"type":"text",

"analyzer":"ik_max_word"

如何在ES中筛选嵌套对象?请看示例

POSTorder_index/_search

"query":{

"nested":{

"path":"address_list",

"query":{

"bool":{

"must":[

"match":{

"address_list.province_name":"上海市"

"match":{

"address_list.district_name":“浦东新区”

}优点:嵌套文档将实体关系嵌套在单个文档中(类似于与json的一对多层次结构)的缺点:nested子文档是ES中的独立文档,会导致数据量急剧增加,影响查询性能。更新所有主文档,影响写作性能。不支持子文档属于多个主文档的场景。

父子文档

先看看它看起来像什么样子

"mappings":{

"_doc":{

"properties":{

"parent_id":{

"type":"keyword"

"parent_join_child":{

"type":"join",

"relations":{

"question":"answer"

parent_id是自定义的字段,parent_join_child是我们父子文档关系的名字,可以自定义。join说是父子文档关系,relations说question是父子,answer是子。

首先,我们插入两个父文档。

PUTexam_index/_doc/1

"parent_id":"1",

"text":“这是一个问题1”,

"parent_join_child":{

"name":"question"

PUTexam_index/_doc/2

"parent_id":"2",

"text":“这是个问题2”,

"parent_join_child":{

"name":"question"

其中"name":"question表示插入的是父文档。

然后插入两个子文档

PUTexam_index/_doc/3?routing=1

"parent_id":"3",

"text":“这是一个答案1,对应问题1”,

"parent_join_child":{

"name":"answer",

"parent":"1"

PUTexam_index/_doc/4?routing=1

"parent_id":"4",

"text":“这是一个答案2,对应问题1”,

"parent_join_child":{

"name":"answer",

"parent":"1"

有很多事情需要解释。首先,我们可以从文档id中判断子文档是独立的文档(不同于nested)。其次,routing关键字表明,路由的id是父文档1,与下面的parent关键字对应的id一致。需要强调的是,在索引子文档时,routing是必要的,因为有必要确保子文档和父文档在同一部分。"name":"answer“关键字表明这是一个子文档。

特点:父子文档类似于关系数据库中的关联关系,适用于写多场景

现在exam_index索引中有四个独立的文档,我们来看看父子文档在搜索时的姿势。

如果我们想通过子文档信息查询父文档,可以通过以下方式实现:

POSTexam_index/_search

"query":{

"has_child":{

"type":"answer",

"query":{

"match":{

"text":"回答"

返回结果:

"_index":"exam_index",

"_type":"_doc",

"_id":"1",

"_score":1,

"_source":{

"my_id":"1",

"text":“这是一个问题1”,

"parent_join_child":{

"name":"question"

若要通过父文档信息查询子文档,可通过以下方式实现:

POSTexam_index/_search

"query":{

"has_parent":{

"parent_type":"question",

"query":{

"match":{

"text":"问题"

返回结果:

"_index":"crm_exam_index",

"_type":"_doc",

"_id":"3",

"_score":1,

"_routing":"1",

"_source":{

"my_id":"3",

"text":“这是一个答案1,对应问题1”,

"parent_join_child":{

"name":"answer",

"parent":"1"

"_index":"crm_exam_index",

"_type":"_doc",

"_id":"4",

"_score":1,

"_routing":"1",

"_source":{

"my_id":"4",

"text":“这是一个答案2,对应问题1”,

"parent_join_child":{

"name":"answer",

"parent":"1"

若要通过父ID查询子文档,可通过以下方式实现:

POSTexam_index/_search

"query":{

"parent_id":{

"type":"answer",

"id":"1"

返回结果与上述结果相同,区别在于parent_id搜索默认使用相关性评分,而has_parent默认不使用评分。

●每个索引只能定义一个joinfield

●父子文档必须在同一部分上,这意味着查询,更新操作需要添加routing

●可以向已经存在的joinfield增加关系

●父子文档适用于数据结构基本相同的场景。如果两个表结构完全不一致,则不建议使用此结构

●父子文档也有缺点,查询速度是这三个方案中最慢的

2023年上海考生高考成绩分布表公布,619分及以上48人

刚才,上海市教育考试院公布了2023年考生高考成绩分布表。其中,619分及以上考生48人。

考生高考成绩分布表(思想政治、历史、地理、物理、化学、生物学),考生可登录“2023年高考志愿辅助填报系统”查询。

请登录“上海招考热线”网站查询2023年艺体考生成绩分布情况。

如果你最近也在看公寓,一定要知道二手房买房的流程,来吧...

上海购房流程。

购房过程非常复杂。本文将全面介绍从看房到入住的15个环节。对于第一次买房的人来说,这篇文章非常有价值。建议收集并表扬它。本文将详细介绍从看房到入住新家的15个环节。直接去干货没有废话。

·1:查征信。

·2:确定预算。

·3:确定片区。

·4:网上筛选房源。

·5:实地看房。

·6:比较几套房子的优缺点。

·7:选择最满意的房子,了解税费、首付和付款方式。

·8:与业主协商,签订购房合同,确定付款时间。

·9:支付定金,核实产权、产权调和产权证书。

·10:准备材料,签订合同,申请贷款。

·11:转让、交房、结算费用。

·12:纳税,领取产证。

·13:等贷款,按时还款。

·14:安排新家并入住,享受新家的喜悦。

·15:举行搬家仪式,邀请亲友聚会,共同庆祝新家落成。

完成上述流程后,您将拥有自己的房子。如有疑问,请在评论区留言或私信给我。

如何在 ES 实现嵌套json对象查询,一次解释!

项目需求

在软件项目开发的实际过程中,由于业务需要,我们的数据库表和表之间的结构是一对多的。以订单表中的数据为例,在mysql数据库中,它们的关系如下图所示:

如果在mysql中查询,可以用join语句来实现;ES本身就是平铺的NoSQL,对于这个1:如何实现N的关联关系?

需求落地

常用的实践方案有三种:

●嵌套对象

●嵌套文档

●父子文档

嵌套对象

先看看它看起来像什么样子

"order_id":{

"type":"keyword"

"cancel_time":{

"type":"date",

"format":"yyyy-MM-ddHH:mm:ss"

"order_status":{

"type":"keyword"

"completed_time":{

"type":"date",

"format":"yyyy-MM-ddHH:mm:ss"

"create_time":{

"type":"date",

"format":"yyyy-MM-ddHH:mm:ss"

"is_delete":{

"type":"keyword"

"modify_time":{

"type":"date",

"format":"yyyy-MM-ddHH:mm:ss"

"order_user":{

"properties":{

"name":{

"type":"text",

"analyzer":"ik_max_word"

"tel":{

"type":"text",

"analyzer":"ik_max_word"

"user_id":{

"type":"keyword"

如何在ES中筛选嵌套对象?请看示例

POSTorder_index/_search

"query":{

"bool":{

"must":[

"match":{

"order_user.name":"张三"

"match":{

"order_user.tel":""

优点:查询时不涉及join,查询效率很高

缺点:由于json对象数组的处理是压扁的,存储在平面键对列表中,因此缺乏相关性。

嵌套文档

先看看它看起来像什么样子

"address_list":{

"type":"nested",

"properties":{

"city_id":{

"type":"keyword"

"city_name":{

"type":"text",

"analyzer":"ik_max_word"

"district_id":{

"type":"keyword"

"district_name":{

"type":"text",

"analyzer":"ik_max_word"

"lat":{

"type":"geo_point"

"lon":{

"type":"geo_point"

"name":{

"type":"text",

"analyzer":"ik_max_word"

"province_id":{

"type":"keyword"

"province_name":{

"type":"text",

"analyzer":"ik_max_word"

如何在ES中筛选嵌套对象?请看示例

POSTorder_index/_search

"query":{

"nested":{

"path":"address_list",

"query":{

"bool":{

"must":[

"match":{

"address_list.province_name":"上海市"

"match":{

"address_list.district_name":“浦东新区”

}优点:嵌套文档将实体关系嵌套在单个文档中(类似于与json的一对多层次结构)的缺点:nested子文档是ES中的独立文档,会导致数据量急剧增加,影响查询性能。更新所有主文档,影响写作性能。不支持子文档属于多个主文档的场景。

父子文档

先看看它看起来像什么样子

"mappings":{

"_doc":{

"properties":{

"parent_id":{

"type":"keyword"

"parent_join_child":{

"type":"join",

"relations":{

"question":"answer"

parent_id是自定义的字段,parent_join_child是我们父子文档关系的名字,可以自定义。join说是父子文档关系,relations说question是父子,answer是子。

首先,我们插入两个父文档。

PUTexam_index/_doc/1

"parent_id":"1",

"text":“这是一个问题1”,

"parent_join_child":{

"name":"question"

PUTexam_index/_doc/2

"parent_id":"2",

"text":“这是个问题2”,

"parent_join_child":{

"name":"question"

其中"name":"question表示插入的是父文档。

然后插入两个子文档

PUTexam_index/_doc/3?routing=1

"parent_id":"3",

"text":"这是一个答案1,对应问题1",

"parent_join_child":{

"name":"answer",

"parent":"1"

PUTexam_index/_doc/4?routing=1

"parent_id":"4",

"text":“这是一个答案2,对应问题1”,

"parent_join_child":{

"name":"answer",

"parent":"1"

有很多事情需要解释。首先,我们可以从文档id中判断子文档是独立的文档(不同于nested)。其次,routing关键字表明,路由的id是父文档1,与下面的parent关键字对应的id一致。需要强调的是,在索引子文档时,routing是必要的,因为有必要确保子文档和父文档在同一部分。"name":"answer“关键字表明这是一个子文档。

特点:父子文档类似于关系数据库中的关联关系,适用于写多场景

现在exam_index索引中有四个独立的文档,我们来看看父子文档在搜索时的姿势。

如果我们想通过子文档信息查询父文档,可以通过以下方式实现:

POSTexam_index/_search

"query":{

"has_child":{

"type":"answer",

"query":{

"match":{

"text":"回答"

返回结果:

"_index":"exam_index",

"_type":"_doc",

"_id":"1",

"_score":1,

"_source":{

"my_id":"1",

"text":“这是一个问题1”,

"parent_join_child":{

"name":"question"

若要通过父文档信息查询子文档,可通过以下方式实现:

POSTexam_index/_search

"query":{

"has_parent":{

"parent_type":"question",

"query":{

"match":{

"text":"问题"

返回结果:

"_index":"crm_exam_index",

"_type":"_doc",

"_id":"3",

"_score":1,

"_routing":"1",

"_source":{

"my_id":"3",

"text":“这是一个答案1,对应问题1”,

"parent_join_child":{

"name":"answer",

"parent":"1"

"_index":"crm_exam_index",

"_type":"_doc",

"_id":"4",

"_score":1,

"_routing":"1",

"_source":{

"my_id":"4",

"text":“这是一个答案2,对应问题1”,

"parent_join_child":{

"name":"answer",

"parent":"1"

若要通过父ID查询子文档,可通过以下方式实现:

POSTexam_index/_search

"query":{

"parent_id":{

"type":"answer",

"id":"1"

返回结果与上述结果相同,区别在于parent_id搜索默认使用相关性评分,而has_parent默认不使用评分。

●每个索引只能定义一个joinfield

●父子文档必须在同一部分上,这意味着查询,更新操作需要添加routing

●可以向已经存在的joinfield增加关系

●父子文档适用于数据结构基本相同的场景。如果两个表结构完全不一致,则不建议使用此结构

●父子文档也有缺点,查询速度是这三个方案中最慢的

【琛从 BANK FINANCING】尊享直接对接老板

电话wx: 13501647909

我司专注于为上海小微企业、行业精英策划优质融资方案。为企业及个人客户提供了高性价比的融资方案,解决了小微企业融资难的问题,一站式助贷融资服务平台

上海市二套房贷款查询所需材料

Copyright2023黑虎科技