0

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

4

2 回答 2

0

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

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

于 2015-12-23T09:02:53.383 回答
0

令人讨厌的是,“索引”在 ES 和许多其他数据库的不同上下文中使用。我对 MongoDB 不太熟悉,所以我将求助于他们在v3.0/core/index-types的文档。

基本上,Elasticsearch 旨在提供高效的“过滤”(是/否查询)和“评分”(通过tf-idf等进行相关性排名),它使用Lucene作为底层倒排索引

MongoDB 概念及其 ES 对应部分:

  • 单字段索引:微不足道的支持,可能作为not_analyzed精确匹配的字段
  • 复合索引:LuceneAND通过高效的位图应用过滤条件,可以临时合并任何“单字段”索引
  • 多键索引:透明支持,无差异值和值数组
  • 地理空间索引:通过地理形状直接支持
  • 文本索引:在某种程度上,ES 已针对此用例作为analyzed字段类型进行了优化

在我看来,在搜索应用程序中,相关性比简单过滤结果更重要,因为几乎每个文档中都会出现一些词,因此在搜索时相关性较低。

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

于 2016-01-03T22:44:06.367 回答