ElasticSearch是否具有mongodb具有的相同索引功能?

时间:2015-12-23 08:42:52

标签: mongodb elasticsearch elasticsearch-java-api

我想知道,因为我们在mognodb中有索引创建功能,以加快查询过程https://docs.mongodb.org/v3.0/indexes/我们为此目的为elasticsearch做了什么?我用谷歌搜索但我无法找到任何合适的信息,我在mongodb中使用索引来处理最常用的字段以加快查询过程,现在我想在elasticsearch中做同样的事情我想知道有什么是elasticsearch提供的。谢谢

2 个答案:

答案 0 :(得分:0)

Elasticsearch还有索引:https://www.elastic.co/blog/what-is-an-elasticsearch-index

它们还被用作数据库的关键功能的一部分,以提供快速搜索功能。

答案 1 :(得分:0)

令人讨厌"索引"与ES和许多其他数据库在不同的上下文中使用。我对MongoDB并不熟悉,所以我会在v3.0/core/index-types使用他们的文档。

基本上Elasticsearch旨在提供高效的“过滤”服务。 (是/否查询)和"评分" (通过tf-idf等进行相关性排名),并使用Lucene作为基础inverted index

MongoDB概念及其ES对应部分:

  • 单字段索引:平凡支持,可能为not_analyzed字段,用于完全匹配
  • 复合索引:Lucene通过有效的位图应用AND过滤条件,可以ad-hoc合并任何"单个字段"索引
  • 多键索引:透明支持,无差异值和值数组
  • 地理空间索引:通过geo-shapes
  • 直接支持
  • 文本索引:在某种程度上,ES针对此用例进行了优化,为analyzed字段类型

在我的搜索应用程序视图中,相关性更为重要,即对结果进行简单过滤,因为某些单词几乎出现在每个文档中,因此在搜索时不太相关。

Elasticsearch还有其他非常有用的概念,例如聚合,嵌套文档和子/父关系。