欢迎访问优讯网!
您当前的位置:首页 > 爱编程

通过logstash实现mysql同步elasticsearch 实现全文检索

时间:2020-01-15 08:36:50  来源:优讯网  作者:小卡司  浏览次数:

目的:文本型数据无法实现关键字查询,某个汉字查询,思路: 实现将mysql某表中 id(mysql某张表中的主键)和content内容同步到elasticsearch ,利用elasticsearch倒排序特性,分词器,对content进行建立索引,通过分词在该elasticsearch查到记录,然后获得该记录的id,并通过该id进入mysql中通过该id(主键)去查询记录。提升查询速度。

(1) 自定义动态模板,在elasticsearch安装目录下新建templates目录(注意,elasticsearch下自定义模板,必须建这个目录)

如下,所有以所有test开头的 都会默认走这个模板配置,release_date指定date类型,des指定text,text类型默认是会分词的,将改des里的字符(汉字)按照默认分词器进行分词(倒排序,建索引的过程)

(2)启动elasticsearch, ./bin/elasticsearch

(3)实现mysql同步到elasticsearch,必须要借助logstash-input-jdbc插件(插件安装省略,logstash7.0默认已自带该插件)

(4)新建logstash配置文件 vi  logstatic-test.sh

注意点:如果出现“LogStash::ConfigurationError  com.mysql.jdbc.Driver not loaded. Are you sure you've included the correct jdbc driver in :jdbc_driver_library?”错误,可能jdbc_driver_library路径不对,也可能mysql-connector-java.jar 和当前环境不兼容,我在操作过程中,就出现该问题

jdk1.8  LogStash7.1.1    elastisearch 7.1 我刚开始用的mysql-connector-java.5.1.4.jar 就出现以上错误,我修改为mysql-connector-java-6.0.6.jar 才解决掉

(5)启动logstash  ./bin/logstash -f ./config/logstash-test.conf

以下是数据同步的过程日志,/logstash7.1.1/logs/logstash-plain.log

(6)借助elasticsearch-head 进行查看  进入elasticsearch-head 安装目录下并启动  npm run start

http://xxx.xxx.xxx.xxx:9100

  

验证查询des、title 是否分词可以查到

分词有时候会把词分成多个字进行查询  例如 “稳伦”,会分为“稳” “稳伦” “伦”等,具体怎么分,和用的分词器有关(具体分词器如何安装、指定、使用此处不做详解,可自行百度)

来顶一下
返回首页
返回首页

原文链接:https://my.oschina.net/u/4422349/blog/3158376


推荐资讯
如何下载旧版centos iso镜像 如何下载迷你mini版的centos镜像
如何下载旧版centos i
计算机的正确使用姿势 电脑痴如何正确的使用电脑
计算机的正确使用姿势
好用的后台管理的前端框架模版H-ui H-ui框架模版分享
好用的后台管理的前端
微信电脑多开方法 无需辅助电脑版微信双开方法分享
微信电脑多开方法 无
相关文章
栏目更新
栏目热门