使用ElasticSearch和分离的Nosql数据库有什么用?Elasticsearch不能同时用作数据库和搜索索引吗?
是的,您可以将ElasticSearch用作数据源和索引.
默认情况下,您发送到ElasticSearch系统的每个文档都是索引,并且还会存储原始文档.这意味着无论何时查询ElasticSearch,您还可以检索索引的原始JSON文档.
如果您有大型文档并且希望能够检索较少量的数据,那么当您可以使用映射API将特定字段的"存储"设置为"是"时,然后使用"字段"键拉出您可能想要的特定字段.
在我的系统中,我有地址自动完成,我只获取属性的地址字段.这是我系统的一个例子:
_search?q=FullAddress:main&fields:FullAddress
然后,当用户选择地址时,我会拉出整个JSON文档(以及其他文档).
注意:
您不能像在SQL中那样进行更新(更新与查询匹配的所有项目以增加属性,让我们说)
但是,您可以添加新文档并替换要更新的ID的现有文档.弹性搜索会在每个文档上增加_version属性,开发人员可以使用该属性来强制执行乐观并发,但它不会维护每个文档的单独版本历史记录.您只能检索最新版本的文档.