9、Elasticsearch:文档关系与搜索操作全解析

Elasticsearch:文档关系与搜索操作全解析

1. 文档关系处理

在处理文档关系时,Elasticsearch 提供了嵌套(Nested)和父子(Parent - Child)两种类型来处理关系型数据。下面是使用 Java 进行查询的示例代码:

SearchResponse response = client.prepareSearch("twitter_parent_child")
      .setTypes("tweets")
      .setQuery(QueryBuilders
      .hasParentQuery(parentType, QueryBuilders.rangeQuery("followers_count")
      .gt(200))).execute().actionGet();

在使用这两种文档关系类型时,需要考虑它们的优缺点,具体对比如下:
| 类型 | 优点 | 缺点 |
| — | — | — |
| 嵌套(Nested) | 存储在同一个 Lucene 块中,读写查询性能更快,读取嵌套文档比父子文档更快 | 更新嵌套文档中的单个字段会导致整个文档重新索引,对于大文档成本高,适合不经常变化的数据 |
| 父子(Parent - Child) | 子文档更新不影响父文档和其他子文档,可能节省大文档的索引成本 | 读写查询性能略低于嵌套类型,若不使用 doc_values,会有额外内存开销 |

2. Elasticsearch 搜索类型

Elasticsearch

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值