21

同时使用 ElasticSearch 和单独的 Nosql 数据库有什么用?Elasticsearch 不能同时用作数据库和搜索索引吗?

4

1 回答 1

16

是的,您可以将 ElasticSearch 用作数据源和索引。

默认情况下,您发送到 ElasticSearch 系统的每个文档都是索引,并且原始文档也会被存储。这意味着每当您查询 ElasticSearch 时,您还可以检索您索引的原始 JSON 文档。

如果您有大型文档并且希望能够检索较少量的数据,那么您可以使用映射 API 将特定字段的“存储”设置为“是”,然后使用“字段”键拉出您可能需要的特定字段。

在我的系统中,我有地址自动完成功能,我只获取属性的地址字段。这是我系统中的一个示例:

_search?q=FullAddress:main&fields:FullAddress

然后,当用户选择地址时,我会提取整个 JSON 文档(以及其他文档)。

笔记:

  1. 您不能像在 SQL 中那样进行更新(例如,更新与查询匹配的所有项目以增加属性)
  2. 但是,您可以添加一个新文档并替换您要更新的 ID 处的现有文档。弹性搜索在每个文档上增加一个 _version 属性,开发人员可以使用该属性来强制执行乐观并发,但它不维护每个文档的单独版本历史记录。您只能检索文档的最新版本。
于 2011-11-09T00:49:00.847 回答