Elasticsearch+Logstash+Java整合实现Word、PDF,TXT等文件的全文内容检索功能-windows版

一:概述

Elasticsearch:是一个开源的高扩展的分布式全文搜索引擎,它可以近乎实时的存储,然后检索数据,延迟很小。

Logstash: 实现将mysql或其他数据库的数据定时采集到Elasticsearch里。

ElasticHD:Elasticsearch的可视化工具,可以在界面条件查询查询Elasticsearch里的数据。

二:Elasticsearch安装部署

注意:因为ES是java开发的,所以需要安装jdk,安装完之后要配置环境变量,这个就不再赘述了,不会的可以从网上搜索怎么配置

1. 下载elasticsearch安装包(也可以自己去es官网下载):  elasticsearch-7.16.2-windows-x86-64-Java文档类资源-CSDN下载

2. 解压安装包到指定目录,我的目录是:D:\tool\elasticsearch-7.16.2

3. 进入bin目录,打开命令行(ps:在地址栏直接输入cmd,敲回车,就会在当前目录打开一个命令行窗口)

 4. 在命令行输入:elasticsearch-service.bat install  把ES安装为服务

5. 启动 elasticsearch

方法一:进入bin目录,双击 elasticsearch.bat 启动该应用

方法二: 打开任务管理器,在服务栏里查看ES是否启动,没有启动,就启动

6. 直接访问 http://localhost:9200/ ,浏览器出现如下所示,表明成功

 补充:  如果启动后报jdk相关的错(原因:es默认先使用本地jdk, 当本地jdk与其需要的版本不匹配则会报错;解决思路就是 让es使用自己自带的jdk,这样就需要修改配置文件,让其指向自己自带的jdk),则按如下方式解决:

步骤一:在系统环境变量里添加:

ES_HOME:     D:\tool\elasticsearch-7.16.2\

ES_PATH_CONF:    D:\tool\elasticsearch-7.16.2\config    

JAVA_HOME:   D:\tool\elasticsearch-7.16.2\jdk

步骤二:按照如上配置后,bin目录下的elasticsearch-env.bat配置文件就会按照设置的目录去调用自带的jdk, 此时重新启动 elasticsearch即可。

三:Logstash安装部署

1. 下载Logstash安装包(也可以自己去es官网下载):  logstash-7.16.2-windows-x86-64版-Java文档类资源-CSDN下载

2. 将安装包解压到指定目录下,我的在:D:\tool\logstash-7.16.2

3. 进入到bin目录下,将 连接mysql数据库的驱动包(mysql-connector-java-5.1.39.jar) 放到该目录下

下载链接:

https://download.csdn.net/download/m0_37951794/87207721

4. 编写采集数据的sql, 并保存到 test.sql文件里,将test.sql文件放到新建的sqldir里,即  bin/sqldir/ test.sql

我test.sql里的内容是: select * from user

5. 修改bin目录下,logstash.conf 配置文件内容:

input{

  stdin {}
  jdbc{
    type => "jdbc"
    # mysql 数据库的连接信息
    jdbc_connection_string => "jdbc:mysql://127.0.0.1:3306/elasticsearch_view?  characterEncoding=UTF-8&autoReconnect=true&useTimezone=true&serverTimezone=UTC"
    jdbc_user => "root"
    jdbc_password => "ABCabc123"
    jdbc_driver_library => "./mysql-connector-java-5.1.39.jar"
    jdbc_driver_class => "com.mysql.jdbc.Driver" 
    # 数据库重连尝试次数
    connection_retry_attempts => "3"
    # 判断数据库连接是否可用,默认false不开启
    jdbc_validate_connection => "true"
    # 数据库连接可用校验超时时间,默认3600S
    jdbc_validation_timeout => "3600"
    # 开启分页查询(默认false不开启);
    jdbc_paging_enabled => "true"
    # 单次分页查询条数(默认100000,若字段较多且更新频率较高,建议调低此值);
    jdbc_page_size => "2"

    # 执行的sql 文件路径,如果sql较简单则用statement属性直接写sql语句即可
    statement_filepath => "./sqldir/test.sql"

   #statement=>"select * from user"

   # 是否将字段名转换为小写,默认true(如果有数据序列化、反序列化需求,建议改为false);
    lowercase_column_names => false

  # 是否记录上次执行结果,true表示会将上次执行结果的tracking_column字段的值保存到last_run_metadata_path指定的文件中;
    record_last_run => true     

    # 需要记录查询结果某字段的值时,此 字段为true,否则默认tracking_column为timestamp的值;:sql_last_value如果input里面use_column_value=>true,即如果设置为true的话,可以是我们设定的字段的上一次的值

    #默认 use_column_value=>false,这样: sql_last_value为上一次更新的最后时刻值,也就是说对于新增的值,才会更新,这样就实现了增量更新的目的

use_column_value=>true

    # 需要记录的字段,用于增量同步,需要是数据库里的字段
    tracking_column =>"id"

    #查询结果某字段的数据类型,仅包括numeric和timestamp,默认为numeric

    tracking_column_type=>"numeric"

    #记录上次执行结果数据的存放位置

last_run_metadata_path=>"./iweb_file_view.log"

   #是否清除last_run_metadata_path的记录,需要增量同步时此字段必须为false

clean_run=>false

  #同步频率(分 时 天 月 年),默认每分钟同步一次

  schedule=>"* * * * * *"
    }
 }

filter{

     mutate{

          remove_field=>["@timestamp","@version"]

     }

}

output {
  if [type] == "jdbc" {
  elasticsearch {
     hosts => "127.0.0.1:9200"
    # 配置ES集群地址
    # hosts => ["192.168.1.1:9200", "192.168.1.2:9200", "192.168.1.3:9200"]
    # 索引名字,必须小写,一个索引下只能有一个类型
    index => "iweb_file"
    # 数据唯一索引(建议使用数据库KeyID)
    document_id => "%{id}"

    document_type=>"file_type"
   }
  }
   stdout {
       codec => json_lines
    }
  }

6. 用记事本编写logstash的启动脚本,并存为: my_run.bat 文件

我  my_run.bat里的内容是: logstash -f logstash.conf

7. 在确保elasticsearch已经启动成功的前提下,启动 logstash(否则无法将数据写入elasticsearch):  双击 my_run.bat 即可,如下图则说明logstash启动成功,并成功连接上了elasticsearch 

四:Elasticsearch可视化工具安装使用(ElasticHD、Kibana)

1. 下载 ElasticHD 安装包:https://download.csdn.net/download/m0_37951794/87214728

2. 解压 安装包到 D:\tool\ElasticHD

3. 在elasticsearch已经启动的前提下,双击ElasticHD/run.bat,启动该可视化工具

4. 启动后直接浏览器访问: http://127.0.0.1:9800,即可看到可视化界面,在连接里配置已启动的elasticsearch的访问地址即可查看里面的存储的数据

五:Java如何调用Elasticsearch(连接、查询、分页、排序、统计、模糊匹配、精准匹配、文字高亮)

我的完整demo:java如何调用Elasticsearch(连接、查询、分页、排序、统计、模糊匹配、精准匹配、文字高亮)源码-Java文档类资源-CSDN下载

结束!

如要安装linux版本请参考:Elasticsearch(集群)+Logstash+Java整合实现Word、PDF,TXT等文件的全文内容检索功能-Linux版_他山之石女士的博客-CSDN博客

  • 0
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

他山之石女士

你一元我一元,是我创作的源泉

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值