ElasticSearch7.2学习—入门

本文介绍了Elasticsearch7.2的特性,包括其作为分布式全文检索引擎的高扩展性和实时数据处理能力。详细讲解了Elasticsearch、Head和Logstash的安装步骤,并演示了如何使用Logstash插件从MySQL同步数据到Elasticsearch。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

ElasticSearch介绍

Elasticsearch是一个开源的高扩展的分布式全文检索引擎,它可以近乎实时的存储、检索数据;本身扩展性很好,可以扩展到上百台服务器,处理PB级别的数据。Elasticsearch也使用Java开发并使用Lucene作为其核心来实现所有索引和搜索的功能,但是它的目的是通过简单的RESTful API来隐藏Lucene的复杂性,从而让全文搜索变得简单。

ElasticSearch,head,logstash安装

1.ElasticSearch,logstash官网下载:https://www.elastic.co/cn/downloads
2.head下载:https://github.com/zt1115798334/elasticsearch-head-master
下载后直接解压就可以

一.启动Head

使用grunt server启动,首先要安装grunt。npm install -g grunt-cli 全局安装grunt(需要nodeJs环境);然后进入到head根目录执行grunt server,默认端口是9100,如下图所示启动成功
在这里插入图片描述

二.启动Elasticsearch

进入Elasticsearch根目录,执行./bin/elasticsearch默认端口是9200,如下图所示
在这里插入图片描述
浏览器访问http://localhost:9200
在这里插入图片描述
浏览器访问http://localhost:9100
在这里插入图片描述
可以查看节点信息,索引查询等操作。如果想要其他电脑可以访问本机的接点需要关闭防火墙,在elasticsearch.yml里面加上

network.host: 0.0.0.0
http.host: 0.0.0.0
transport.host: 127.0.0.1

http.cors.enabled: true
http.cors.allow-origin: "*"

三.同步Mysql数据到Elasticsearch

如何把mysql里面表数据同步到Elasticsearch呢?这里用到的是logstash插件。打开logstash目录下面的config新建一个文件mysqltoes.conf
在这里插入图片描述

将下面的配置信息复制,对应的修改自己需要的部分
input {
 stdin { }
    jdbc {
    	# 连接数据库
        jdbc_connection_string => "jdbc:mysql://192.168.1.1:3307/smart-med"
  		# 用户名
        jdbc_user => "smart-med"
 		# 密码
        jdbc_password => "123456"
 		# java-mysql驱动位置
        jdbc_driver_library => "C:/Users/dofun/.m2/repository/mysql/mysql-connector-java/5.1.46/mysql-connector-java-5.1.46.jar"
 
        jdbc_driver_class => "com.mysql.jdbc.Driver"
         
        jdbc_paging_enabled => "true"
         
        jdbc_page_size => "50000"
        # 需要同步那个表的数据,就查询对应表
        statement => "SELECT * FROM t_basic_case"
        # 同步间隔schedule表达式
        schedule => "* * * * *"
    }
 }
  
 output {
     stdout {
        codec => json_lines
    }
    # elasticsearch配置
    elasticsearch {
    	# 节点url
        hosts => "localhost:9200"
        # 索引名称,相当于mysql的数据库名称
        index => "smart-med"
        # 文档类型,相当于mysql里面的表名称
        document_type => "text"
        # 文档id
        document_id => "%{id}"
    }
}

配置完后启动logstash,进入logstash根目录执行bin\logstash.bat -f config\mysqltoes.conf,可以看到正在同步数据
在这里插入图片描述
同步完成后可以看到,已经创建了对应的索引和数据
在这里插入图片描述

总结

ElasticSearch,head, logstash的安装,数据同步就写到这里,想要了解更多关于ElasticSearch操作可以自行学习。下一篇会写ElasticSearch配置ik分词器

### Elasticsearch 7.2 学习教程和文档 #### 官方文档的重要性 Elasticsearch作为Elastic Stack的核心部分,提供了强大的分布式搜索和分析功能[^1]。对于希望深入了解Elasticsearch 7.2的开发者来说,官方文档是最权威的学习资源之一。 #### Spring Boot 集成指南 为了更好地理解和应用Elasticsearch 7.2,在Spring Boot项目中的集成是一个很好的实践案例。由于`spring-data-elasticsearch`最新版本仅支持到Elasticsearch 6.8,因此推荐直接使用Elasticsearch原生API进行开发,以确保与所使用的Elasticsearch版本相匹配[^2]。 #### Maven依赖配置 当准备在一个基于Maven构建的新Spring Boot项目里引入Elasticsearch时,可以在项目的`pom.xml`文件中加入如下两个必要的依赖项: ```xml <dependency> <groupId>org.elasticsearch</groupId> <artifactId>elasticsearch</artifactId> <version>7.2.0</version> </dependency> <dependency> <groupId>org.elasticsearch.client</groupId> <artifactId>elasticsearch-rest-high-level-client</artifactId> <version>7.2.0</version> </dependency> ``` 这段XML片段展示了如何正确设置用于连接和服务于Elasticsearch实例所需的库版本[^3]。 #### 查询父子文档的例子 针对更复杂的查询需求,如检索特定父级ID下的所有子记录,可以利用`parent_id`查询语句完成此操作。下面给出了一段JSON格式的请求体示例,它会返回类型为`answer`且其父节点ID等于`1`的所有条目[^4]: ```json GET my_index/_search { "query": { "parent_id": { "type": "answer", "id": "1" } } } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值