数据一般分为如下三类:
-
结构化数据(扩展结构不方便)
-
非结构化数据(维度广数据量大,存储和查询成本大,一般存入MongDB、Redis、HBase,以K-V结构保存)
-
半结构化数据
Elastic Stack包括ES,Kibana、Beats和Logstash(也可称为ELK Stack)。Elasticsearch是一个开源的高扩展的分布式全文搜索引擎,是整个Elastic Stack的核心可以近乎实时存储。检索数据,扩展性很好,可以扩展到上百台服务器,处理PB级别数据。
Elasticsearch和Solr是基于Apache基金会的Lucene子项目开发;
Elasticsearch是使用Java开发的;
Elasticsearch是面向文档型数据库,一条数据就是一个文档;
倒排索引
关键字去查询主键ID,然后再关联文件内容,表的概念就逐渐弱化了,ES7.X中Type的概念已经被删除,强调的是关键字与文档编号的关联
正排(正向)索引
主键ID去找内容,再找关键字
访问常规数据库使用需要明确连接的哪个数据库,哪个表
ES中使用Index索引
创建索引相当于创建数据库
向ES发送put请求相当于创建http://127.0.0.1:9200/shopping
除了post请求,其他请求都具有幂等性,即再次发送相同请求执行结果是一致的,例如已经put创建了相同的索引,则会提示已经存在
Get发送请求获取索引信息 http://127.0.0.1:9200/shopping
Get请求发送,返回所有索引信息 http://127.0.0.1:9200/_cat/indices?v
Delete删除索引 http://127.0.0.1:9200/shopping
索引创建好后,下一步创建文档,并添加数据
Post发送请求获取索引信息,ES会自动生成一个唯一ID http://127.0.0.1:9200/shopping/_doc
若不想使用ES生成的ID可以自己指定,http://127.0.0.1:9200/shopping/_doc/1001
或http://127.0.0.1:9200/shopping/_create/1001
查询数据
主键查询发送Get请求 http://127.0.0.1:9200/shopping/_doc/1001
获取全部数据发送Get请求 http://127.0.0.1:9200/shopping/_search