elasticsearch,lucene,updates,Mongodb,Search,elasticsearch,Lucene,Updates" /> elasticsearch,lucene,updates,Mongodb,Search,elasticsearch,Lucene,Updates" />

Mongodb Elasticsearch-更新非索引字段

Mongodb Elasticsearch-更新非索引字段,mongodb,search,elasticsearch,lucene,updates,Mongodb,Search,elasticsearch,Lucene,Updates,我需要在我的网站上提供搜索功能,我打算为此使用弹性搜索 场A保持不变,场B每天变化一次,场C每分钟变化一次。字段C未编制索引(索引:“否”),而字段A和字段B编制索引 问题:当我在弹性搜索中更改字段C(未编制索引)时,是否会更新整个文档(经历检索更改重新索引过程)?鉴于字段C的更新频率,弹性搜索是否是搜索字段a和B的好选择(其他选项可能是MongoDB文本搜索)?MongoDB是一个数据库,而弹性搜索是一个搜索引擎。 在操作这两个系统时,这一点是很有意义的:MongoDB完全是关于数据的灵活性,

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

场A保持不变,场B每天变化一次,场C每分钟变化一次。字段C未编制索引(索引:“否”),而字段A和字段B编制索引


问题:当我在弹性搜索中更改字段C(未编制索引)时,是否会更新整个文档(经历检索更改重新索引过程)?鉴于字段C的更新频率,弹性搜索是否是搜索字段a和B的好选择(其他选项可能是MongoDB文本搜索)?

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

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

聚合

Elasticsearch请求系统是非常同质的,在处理聚合时变得非常清晰

MongoDB有一个专用的聚合管道,通过阶段[{“$match”:}、{“$group”:}、{“$sort”:}、…]定义。 Elasticsearch聚合完全集成到请求中, 即使请求主体通常比MongoDB管道更大,它也感觉更清晰

Elasticsearch与MongoDB的显著区别在于它不是无模式的。 除了数据之外,可以在没有更多信息的情况下为文档编制索引,但引擎会自动映射字段。为文档编制索引时, Elasticsearch为其定义默认映射。一旦定义了它,就不可能(与MongoDB不同)索引另一个具有相同类型但不同格式的文档(例如,在以前的int字段中使用字符串)

Mongodb将比使用默认映射索引的批量插入中的弹性搜索更快

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

问题:当我在弹性搜索中更改字段C(未编制索引)时,是否会更新整个文档(经历检索更改重新索引过程)?鉴于字段C的更新频率,弹性搜索是否是搜索字段a和B的好选择(其他选项可能是MongoDB文本搜索)


考虑到您的更新频率和弹性搜索行为,需要在发生更改时重新生成文档。我建议使用MongoDB,MongoDB是一个数据库,而Elasticsearch是一个搜索引擎。 在操作这两个系统时,这一点是很有意义的:MongoDB完全是关于数据的灵活性,而Elasticsearch的方法更为谨慎和有序

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

聚合

Elasticsearch请求系统是非常同质的,在处理聚合时变得非常清晰

MongoDB有一个专用的聚合管道,通过阶段[{“$match”:}、{“$group”:}、{“$sort”:}、…]定义。 Elasticsearch聚合完全集成到请求中, 即使请求主体通常比MongoDB管道更大,它也感觉更清晰

Elasticsearch与MongoDB的显著区别在于它不是无模式的。 除了数据之外,可以在没有更多信息的情况下为文档编制索引,但引擎会自动映射字段。为文档编制索引时, Elasticsearch为其定义默认映射。一旦定义了它,就不可能(与MongoDB不同)索引另一个具有相同类型但不同格式的文档(例如,在以前的int字段中使用字符串)

Mongodb将比使用默认映射索引的批量插入中的弹性搜索更快

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

问题:当我在弹性搜索中更改字段C(未编制索引)时,是否会更新整个文档(经历检索更改重新索引过程)?鉴于字段C的更新频率,弹性搜索是否是搜索字段a和B的好选择(其他选项可能是MongoDB文本搜索)


考虑到您的更新频率和弹性搜索行为,需要在发生更改时重新生成文档。我建议您选择MongoDB,如果您想提供搜索功能,请选择ElasticSearch

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

如果一个文件没有索引,那么您需要决定是否要存储它?就好像一个字段既没有存储也没有索引没有任何意义,elasticsearch文档是不可变的,这意味着如果您更新一个文档,就会创建一个新文档,并且多次更新一个文档会导致同一文档的多个版本,并且需要重新编制索引,尽管只有一个处于活动状态,但会对系统造成压力。如果您可以控制正在更新的文档的文档ID,那么您可以做的就是使用相同的文档ID和更新值反复插入该文档ID

  • 免费特克斯