Elasticsearch(简称ES)是一个分布式的搜索和分析引擎,具有分布式、高性能、检索快等特点,内部使用Lucene全文搜索框架进行索引和搜索。
ES为所有类型的数据提供实时的搜索和分析,无论是结构化或非结构化文本、数字数据,还是地理空间数据等其他类型数据,ES都可将其存储和索引并支持快速搜索。
ES支持弹性扩容。我们可以根据数据和访问量的实际情况,对ES集群规模动态调整。按照官方描述,ES集群规模支持“上百”个节点。
Lucene是Java语言编写的一个全文搜索引擎工具包。Lucene提供了完整的查询引擎和索引引擎,是一个全文检索引擎的架构,但它不是一个完整的全文搜索引擎,它的目的只是提供一个简单易用的工具包,来方便应用系统实现全文搜索功能。ES是在Lucene基础上建立起完整的全文搜索引擎。
ElasticSearch是面向文档型数据库,一条数据就是一个文档,用JSON作为文档的序列化形式。它和关系型数据库的对照如下:
关系数据库 ⇒ 数据库 ⇒ 表 ⇒ 行 ⇒ 列(Columns) Elasticsearch ⇒ 索引(Index) ⇒ 类型(type) ⇒ 文档(Docments) ⇒ 字段(Fields)2. 安装 2.1 下载安装包
打开ElasticSearch官网下载链接,如下图:
下载后,解压文件,目录结构如下:
打开config/elasticsearch.yml文件,修改配置参数
# 集群名称(自定义) cluster.name: my-application # 节点名称(自定义) node.name: node1 # 存储数据的目录路径(用逗号分隔多个位置) path.data: D:projectelasticsearch-8.1.0data # 日志文件存储路径 path.logs: D:projectelasticsearch-8.1.0datalogs # 启动时锁定内存,默认开启 bootstrap.memory_lock: true # 设置为0.0.0.0允许外网访问 network.host: 0.0.0.0 # 端口号 http.port: 9200 # 启动此节点时,执行主机的初始列表,多个用逗号分隔 discovery.seed_hosts: ["node1"] # 初始化集群节点,多个用逗号分隔 cluster.initial_master_nodes: ["node1"] # 启用安全功能,这里先关闭,方便测试,若为true,则开启密码验证模式,访问时要输密码访问 xpack.security.enabled: false xpack.security.enrollment.enabled: false # ssl加密验证关闭 xpack.security.http.ssl: enabled: false keystore.path: certs/http.p12
打开config/jvm.options文件,修改jvm配置参数,这里设置堆内存为1g,可根据电脑配置自己设置
-Xms1g -Xmx1g2.3 启动
在elasticsearch根目录下打开cmd命令窗口,输入.binelasticsearch.bat命令,回车,出现下图即启动成功。
查询ES有多少索引
GET 127.0.0.1:9200/_cat/indices?v
查询某一个索引的全部数据 _search
GET 127.0.0.1:9200/work_one/_search
分页查询数据,from size
# 从第一条数据开始查,数量是2条
GET 127.0.0.1:9200/work_one/_search
{
"from":0,
"size":2
}
# 查询结果
{
"took": 1,
"timed_out": false,
"_shards": {
"total": 1,
"successful": 1,
"skipped": 0,
"failed": 0
},
"hits": {
"total": {
"value": 5,
"relation": "eq"
},
"max_score": 1.0,
"hits": [
{
"_index": "work_one",
"_id": "vUCTg38ByHNci4ZdKgns",
"_score": 1.0,
"_source": {
"name": "张三",
"age": "23",
"score": "100"
}
},
{
"_index": "work_one",
"_id": "vkDJg38ByHNci4ZdMQlw",
"_score": 1.0,
"_source": {
"name": "李四",
"age": "22",
"score": "90"
}
}
]
}
}
3.2 新增
创建work_one文本文件并添加一条数据,ID自动生成;
# 指定文档ID(10001) PUT 127.0.0.1:9200/work_one/_doc/10001 # 自动生成文档ID POST 127.0.0.1:9200/work_one/_doc
若自己指定数据ID,则要改为PUT请求



