Elasticsearch入门

您所在的位置:网站首页 深入理解elasticsearch Elasticsearch入门

Elasticsearch入门

2023-05-18 02:30| 来源: 网络整理| 查看: 265

1、介绍

elasticsearch是一个开源的分布式搜索分析引擎,被用作全文检索、结构化搜索、分析这三个功能的组合。它可以近乎实时的存储、检索数据;本身扩展性很好,可以扩展到上百台服务器,处理PB级别的数据。

2、核心概念

1)index索引 一个索引就是一个拥有几分相似特征的文档集合,类比mysql中的数据库。 2)type类型(版本8之后废弃) 一个类型就是索引的一个逻辑上的分类或者分区,类比mysql中的表。 3)document文档 一个文档是一个可被索引的基础信息单元,文档以JSON的的格式表示,类比mysql中的一行数据。 4)filed字段 相当于数据表的字段,对文档数据根据不同属性进行的分类标识,类比mysql中列属性。 5)mapping映射 mapping是处理数据的方式和规则方面做一些限制,如某个字段的数据类型、默认值、分析器、是否被索引等等,这些都是映射里面可以设置的,其它就是处理es里面数据的一些使用规则设置也叫做映射,按着最优规则处理数据对性能提高很大,因此才需要建立映射,并且需要思考如何建立映射才能对性能更好。相当于mysql中的创建表的过程,设置主键外键等等 6)cluster集群 一个集群就是由一个或多个节点组织在一个,它们共同持有整个的数据,并一起提供索引和搜索功能。 7)node节点 一个节点是集群中的一个服务器,作为集群的一部分,它存储数据,参与集群的索引和搜索功能。 8)alias别名 一组数据流或者索引的二级名字 9)data stream 数据流 7.9版本的新特性,Data stream 使你可以跨多个索引存储只追加数据的时间序列数据,同时为请求提供唯一的一个命名资源。 data stream 非常适合日志,事件,指标以及其他持续生成的数据。

对比关系性数据库 在这里插入图片描述 注:*Type在8之后已经删除

3、安装和启动

安装步骤:

配置Java环境,不同版本对于JDK版本的要求不同下载安装(macOS) curl -O https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-8.7.1-darwin-x86_64.tar.gz curl https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-8.7.1-darwin-x86_64.tar.gz.sha512 | shasum -a 512 -c - tar -xzf elasticsearch-8.7.1-darwin-x86_64.tar.gz cd elasticsearch-8.7.1/启动命令 ./bin/elasticsearch验证启动 curl --cacert $ES_HOME/config/certs/http_ca.crt -u elastic https://localhost:9200 可以看到如下返回

{ “name” : “Cp8oag6”, “cluster_name” : “elasticsearch”, “cluster_uuid” : “AT69_T_DTp-1qgIJlatQqA”, “version” : { “number” : “8.7.1”, “build_type” : “tar”, “build_hash” : “f27399d”, “build_flavor” : “default”, “build_date” : “2016-03-30T09:51:41.449Z”, “build_snapshot” : false, “lucene_version” : “9.5.0”, “minimum_wire_compatibility_version” : “1.2.3”, “minimum_index_compatibility_version” : “1.2.3” }, “tagline” : “You Know, for Search” }

出现输入用户名和密码情况,可以配置config/elasticsearch.yml中的xpack.security.enabled: false

4、客户端操作

使用Restful接口直接访问 Talend API tester或postman

可视化工具 Kibana是一个针对ElasticSearch的开源分析及可视化平台,用来搜索、查看交互存储在ElasticSearch索引中的数据

5、API说明 索引相关API

创建索引

PUT http://localhost:9200/my_index

删除索引

DELETE http://localhost:9200/

获取索引

GET http://localhost:9200/

文档相关API

创建文档

PUT http://localhost:9200//_doc/ POST //_doc/ PUT //_create/ POST //_create/

删除文档

DELETE http://localhost:9200//_doc/

获取文档

GET http://localhost:9200//_doc/ HEAD /_doc/ GET /_source/ HEAD /_source/

查询相关API

GET http://localhost:9200//_search GET /_search POST //_search POST /_search //RequestBody可设置查询条件

更多可以参考:https://www.elastic.co/guide/en/elasticsearch/reference/current/rest-apis.html

6、倒排索引

Elasticsearch 使用一种称为倒排索引的结构,它适用于快速的全文搜索。一个倒排索引由文档中所有不重复词的列表构成,对于其中每个词,有一个包含它的文档列表。 例如,假设我们有两个文档,每个文档的 content 域包含如下内容: Welcome to China This is a guest from China 为了创建倒排索引,我们首先将每个文档的 content 域拆分成单独的 词(我们称它为 词条 或 tokens ),创建一个包含所有不重复词条的排序列表,然后列出每个词条出现在哪个文档。结果如下所示: 在这里插入图片描述 现在,如果我们想搜索 from China ,我们只需要查找包含每个词条的文档: 在这里插入图片描述

两个文档都匹配,但是第二个文档比第一个匹配度更高。如果我们使用仅计算匹配词条数量的简单相似性算法 ,那么,我们可以说,对于我们查询的相关性来讲,第二个文档比第一个文档更佳。 除此之外,还要单词规范化、分词等问题,具体可以参考 https://www.elastic.co/guide/cn/elasticsearch/guide/current/inverted-index.html



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3