logstash mysql同步ik分词_ElasticSearch+LogStash实现mysql的数据同步和分词全文检索

bc3f9276acf88283a0569b9b9ef9ee92.png

在线QQ客服:1922638

专业的SQL Server、MySQL数据库同步软件

在建站的过程中,为了便于对便笺和文章内容进行全文搜索,可以考虑集成es,使用es的分词功能在站中进行全文搜索。

在官方网站上下载es压缩包,解压缩后,在config中配置yml文件:

执行elasticsearch.bat,使用浏览器访问http://本地主机:9200/,并成功执行,不会出现错误。

为了便于查看,我们可以安装elasticsearch-head插件,首先安装nodeJs环境,

安装grunt:npm install npm install-g grunt-cli查看grunt版本grunt-version

下载elasticsearch-head(禁止将其放在elasticsearch的plugins和modules目录中,但放在根目录中),解压缩后,修改head/Gruntfile.js:

安装elasticsearch-head:在elasticsearch-head目录下执行npm install

要运行插件,只需在head源代码目录中启动nodejs:grunt server

然后在浏览器中输入http://本地主机:9100/。

如果错误是由Gruntfile.js引起的,并且缺少以下软件包,请执行以下命令:

npm install grunt-contrib-clean–registry = https://registry.npm.taobao.org

npm install grunt-contrib-concat–registry = https://registry.npm.taobao.org

npm install grunt-contrib-watch–registry = https://registry.npm.taobao.org

npm install grunt-contrib-connect–registry = https://registry.npm.taobao.org

npm install grunt-contrib-copy–registry = https://registry.npm.taobao.org

npm install grunt-contrib-jasmine–registry = https://registry.npm.taobao.org

安装ik标记程序:

在git上找到相应的版本(版本必须一致),将其下载到本地软件包mvn软件包中,在目标/版本中获得zip,在plugins目录下创建一个新的ik文件夹,并将其解压缩。

拼音令牌生成器操作相同的ik-拼音

1.下载并解压缩logstash后,在根目录中创建一个新的mysql,将mysql-connector-java-5.1.27.jar复制到其中,然后配置jdbc.conf和同步表的查询方法。只需从[表]中选择*

jdbc.conf配置:

note.sql:

选择* fromt_notewherelocked = 0

2.运行logstash(进入logstash/bin目录):logstash-f…/mysql/jdbc.conf

Logstash将自动将mysql数据同步到elasticsearch。

首先,spring集成的elasticsearch需要添加elasticsearch的运输依赖性

然后,我们定义TransportClient(连接到es客户端的java api,在这里我们将其提供给spring容器进行管理); TransportClient作为外部访问者,请求ES群集,对于群集,这是一个外部因素,不会影响群集的运行。

然后在业务层调用TransportClient实例以添加,删除,修改和检查es。

在获得请求参数的内容字段之后,我们首先使用ES的令牌化器对其进行分段:在ESUtils类中,我们定义了processingSearchContent方法,并在getIkAnalyzeSearchTerms中调用elasticsearch的ik令牌化器进行了分段。

QueryBuilders.boolQuery用于组合多个叶子或复合查询子句的默认查询。其中,must方法类似于操作,应该类似或操作; matchPhrasePrefixQuery用于词组前缀匹配查询,将分词后的词组通过循环合并为boolQuery,最后由SearchRequestBuilder调用搜索语句。

我们的自定义工具处理类对查询结果执行查询关键字突出显示,创建一个新的MyHightlightBuilder类,并定义setNoteHighlighter方法(可以为不同的实体内容处理定义不同的方法):

在业务层中,调用Highlight方法以处理查询结果:

elasticsearch的更新操作:

elasticsearch的删除操作:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值