我需要在我的网站上提供搜索功能,并且打算将Elastic Search用于此目的。
我的字段A保持不变,字段B每天更改一次,字段C每分钟更改一次。字段C未索引(索引:“否”),而字段A和字段B已索引。
问:每当我在Elastic Search中更改字段C(未建立索引)时,整个文档都将得到更新(进行检索-更改-重新编制索引的过程)吗?给定字段C的更新频率,Elastic Search是否是搜索字段A和B的不错选择(其他选项可以是MongoDB Text Search)?
MongoDB是一个数据库,而Elasticsearch是一个搜索引擎。当操纵这两个系统时,这确实很有意义:MongoDB的重点在于数据的灵活性,而Elasticsearch则具有更为谨慎和有序的方法。
Elasticsearch是文本搜索引擎库Lucene的包装。从概念上讲,Lucene管理着底层操作,如索引和数据存储,而Elasticsearch则提供了一些数据抽象级别以适应JSON的可能性,HTTP REST API并简化了集群的构造。
集合体
Elasticsearch请求系统非常相似,在处理聚合时变得很清楚。
MongoDB有一个专用的聚合管道,该管道通过阶段[{“ $ match”:},{“ $ group”:},{“ $ sort”:},...]定义。Elasticsearch聚合已完全集成到请求中,即使请求主体通常大于MongoDB管道,也感觉更加清晰。
Elasticsearch与MongoDB的最大不同之处在于,Elasticsearch并非缺乏架构。可以为文档建立索引,而无需提供比单独数据更多的信息,但是引擎会自动映射字段。在为文档建立索引时,Elasticsearch为其定义一个默认映射。定义后,就无法(不同于MongoDB)索引具有相同类型但格式不同(例如在以前的int字段中包含字符串)的另一个文档。
在具有默认映射索引的批量插入中,Mongodb将比Elastic Search更快。
MongoDB中的文档是可变的,而Elasticsearch中的文档是不可变的。我们无法更改它们。相反,如果需要更新现有文档,则可以重新索引或替换它。
问:每当我在Elastic Search中更改字段C(未建立索引)时,整个文档都将得到更新(进行检索-更改-重新编制索引的过程)吗?给定字段C的更新频率,Elastic Search是否是搜索字段A和B的不错选择(其他选项可以是MongoDB Text Search)?
考虑到您的更新频率以及发生更改时需要重建文档的Elastic Search行为。我建议去MongoDB
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句