当前位置: 首页 > 面试题库 >

在Elasticsearch中更新所有记录中的字段

孙博艺
2023-03-14
问题内容

我是ElasticSearch的新手,所以这可能很琐碎,但是我还没有找到更好的方法来获取所有内容,使用脚本处理并逐个更新寄存器。

我想做一个简单的SQL更新:

UPDATE RECORD SET SOMEFIELD = SOMEXPRESSION

我的意图是将实际的伪造数据替换为更有意义的数据(因此,表达式基本上是从有效值池中随机选择)。


问题答案:

关于使通过查询更新文档成为可能,存在一些未
解决的问题。

技术挑战是,lucene(elasticsearch在后台使用的文本搜索引擎库)段是只读的。您永远不能修改现有文档。您需要做的是删除文档的旧版本(顺便说一句,直到段合并发生,它才被标记为已删除),并为新版本建立索引。那就是现有的更新api所做的。因此,通过查询进行的更新可能会花费很长时间并且会导致问题,这就是为什么它尚未发布。在这种情况下,允许中断正在运行的查询的机制也是一个不错的选择。

但是,通过查询插件进行的更新恰恰暴露了该功能。在使用它之前,请当心潜在的风险。



 类似资料:
  • 问题内容: 我正在使用go在elasticsearch中插入一条记录,如下所示:https : //github.com/olivere/elastic 现在,如果我必须部分更新它(假设如果只有一个条目,例如“ name”),那么我想使用UPDATE API。我找不到任何文档来描述如何在油膜/弹性橡胶中使用此API /函数。我想知道是否有人以前使用过此方法,可以在此方面帮助我。 问题答案: 所以,

  • 问题内容: 我有两个与ElasticSearch有关的问题。 1)有什么方法可以指定我想要特定字段的结果以降序排列吗?等效SQL查询为: 2)如何获得第一和最后(最新)记录? 问题答案: 1)Elasticsearch具有相当完善的Sorting API ,可让您控制排序顺序。因此,在elasticsearch中,等效于您的MySql查询如下所示: 排序也可以在_search URI上指定。 2)

  • 我想使用POJO作为源来更新JOOQ记录中更改的字段<代码>记录。from(Object)几乎正确,但根据文档 结果记录的所有值的内部“更改”标志都将设置为true。 我只希望实际更改的字段(由对象决定。等于(对象,对象))更新其标志。 这有两个原因: 我不想触发插入

  • 问题内容: 我在Elasticsearch中有一个小型数据库,出于测试目的,我想拉回所有记录。我正在尝试使用以下形式的网址… 有人可以给我您用来完成此操作的URL吗? 问题答案: 我认为支持lucene语法是这样的: 大小默认为10,因此您可能还需要获取10个以上的商品。(其中BIGNUMBER等于您认为大于数据集的数字) 但是,elasticsearch文档建议使用扫描搜索类型针对大型结果集。

  • 问题内容: 我有两张桌子。大约有80行,大约有1000万行。 我想使用中的随机行更新其中的所有行。我不希望所有行都显示同一行。是否可以更新并让它为要更新的每一行随机选择一个值? 这是我尝试过的方法,但是在每一行中都放置了相同的值。 **编辑 问题答案: 好的,我认为这是我编写的最奇怪的查询之一,而且我认为这样做的速度太慢了。但是试一试:

  • 问题内容: 我可以在mysql数据库上打开审核日志记录吗? 我基本上想监视所有查询一个小时,并将日志转储到文件中。 问题答案: 使用–log选项启动mysql: 或在文件中放置以下内容: 任何一种都将所有查询记录到log_file_name。 您也可以使用选项代替来仅记录慢速查询。默认情况下,花费10秒或更长时间的查询被认为是缓慢的,您可以通过设置查询在记录之前必须执行的秒数来更改它。