首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Elasticsearch -更新非索引字段

Elasticsearch -更新非索引字段
EN

Stack Overflow用户
提问于 2016-07-15 05:07:05
回答 2查看 873关注 0票数 1

我需要提供我的网站上的搜索功能,我打算使用弹性搜索的目的。

我的字段A保持不变,字段B每天变化一次,C字段每分钟变化一次。字段C没有索引(索引:"no"),而字段A和字段B被索引。

问题:当我在弹性搜索中更改字段C(没有索引)时,整个文档会被更新(接受检索-更改-重新索引过程)吗?考虑到字段C的更新频率(其他选项可以是MongoDB文本搜索),弹性搜索是搜索字段A和B的好选择吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-07-15 06:53:24

MongoDB是一个数据库,而Elasticsearch是一个搜索引擎。在操作这两个系统时,它确实是有意义的:而MongoDB是关于数据的灵活性,而Elasticsearch则有更谨慎和有序的方法。

Elasticsearch是文本搜索引擎库Lucene的包装器。从原理上讲,Lucene管理低级别操作,如索引和数据存储,而Elasticsearch提供了一些数据抽象级别以适应JSON的可能性,HTTP并大大简化了集群的构成。

集合体

弹性搜索请求系统非常同构,在处理聚合时变得很清楚。

MongoDB有一个专门的聚合管道,通过阶段{"$match":}、{"$group":}、{"$sort":}、.Elasticsearch聚合完全集成到请求中,即使请求主体通常大于MongoDB管道,感觉也要清晰得多。

Elasticsearch与MongoDB的最大不同之处在于它不是无模式的。可以在没有任何信息的情况下对文档进行索引,但引擎会自动映射字段。当索引文档时,Elasticsearch为文档定义了默认映射。一旦定义了它,就不可能(不像MongoDB)用相同类型但格式不同的另一个文档索引(例如,在以前的int字段中有一个字符串)。

在具有默认映射索引的批量插入中,Mongodb将比弹性搜索更快。

MongoDB中的文档是可变的,而Elasticsearch中的文档是不可变的;我们不能更改它们。相反,如果我们需要更新一个现有的文档,我们重新索引或替换它。

ElasticSearch中的文档更新

ElasticSearch中的部分更新文档

问题:当我在弹性搜索中更改字段C(没有索引)时,整个文档会被更新(接受检索-更改-重新索引过程)吗?考虑到字段C的更新频率(其他选项可以是MongoDB文本搜索),弹性搜索是搜索字段A和B的好选择吗?

考虑到您的更新频率和弹性搜索行为,需要在发生更改时重新构建文档。我建议你选MongoDB

票数 0
EN

Stack Overflow用户

发布于 2016-07-15 07:16:31

如果你想提供搜索能力的原因,ElasticSearch就会去

  • 自由文本搜索
  • 空间搜索
  • 分组、聚合
  • Json格式
  • 基于Lucene的最著名的索引库

如果一个文件没有索引,那么您需要决定是否要存储它?就好像一个字段既没有存储也没有索引,而且elasticsearch文档是不可变的,这意味着如果您更新一个文档,一个新文档会被创建,并且多次更新一个文件,导致同一个文档的多个版本,并且需要重新索引,尽管只有一个是活动的,但是给系统带来了压力。如果您控制正在更新的文档的文档ID,您可以做的就是使用相同的doc id和更新的值一次又一次地插入它。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38388220

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档