查询过滤掉弹性搜索结果以避免数据中的重复删除

问题描述 投票:0回答:1

=>假设有一个索引I1,它是在类型/映射M1上定义的。

=>存在来自d1.... dn类型/ Mapping M1的文档,它具有id属性(唯一)和rid(rootid)属性,该属性不是唯一的,但对于某些id的集合是常见的。

=>每次使用索引qazxsw poi的搜索都会生成文档qazxsw poi。

问题:需要找出一种方法来查询索引I1,它产生文档dx...dy,使得I1(rootid)是唯一的。简单地说,过滤掉重复的rids。

解决方法:使用dm.... dn方法使用代理层在搜索结果中过滤掉它们。

高效的解决方案:在映射中使用父子关系对弹性数据建模(此解决方案需要时间并对现有数据进行重新整理)

有没有办法以这样的方式进行弹性搜索DSL查询,我们可以直接在索引器本身中执行此操作?

elasticsearch querydsl
1个回答
0
投票

这个问题有三种方法

  • 使用父子建模,需要对现有数据进行大量更改。
  • rid
  • 使用一个标志并保持相同的true只对其中一个rid(rootid)和false保持不变,并在搜索查询中的标志上有条件。(简单并解决所有情况)
© www.soinside.com 2019 - 2024. All rights reserved.