我想知道,因为我们在 mognodb 中有索引创建功能来加快查询过程https://docs.mongodb.org/v3.0/indexes/ 为此我们有什么弹性搜索?我用谷歌搜索了它,但找不到任何合适的信息,我在 mongodb 中对最常用的字段进行索引以加快查询过程,现在我想在 elasticsearch 中做同样的事情,我想知道 elasticsearch 提供了什么。谢谢
问问题
235 次
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
精确匹配的字段 - 复合索引:Lucene
AND
通过高效的位图应用过滤条件,可以临时合并任何“单字段”索引 - 多键索引:透明支持,无差异值和值数组
- 地理空间索引:通过地理形状直接支持
- 文本索引:在某种程度上,ES 已针对此用例作为
analyzed
字段类型进行了优化
在我看来,在搜索应用程序中,相关性比简单过滤结果更重要,因为几乎每个文档中都会出现一些词,因此在搜索时相关性较低。
Elasticsearch 还有其他非常有用的概念,例如聚合、嵌套文档和子/父关系。
于 2016-01-03T22:44:06.367 回答