目录
elastic search新闻搜索
由于项目中有门户新闻网站,新需求需要支持
- 全文检索功能
- 支持高亮
- 按标题检索
- 按内容检索
- 按发布时间检索
因此这里需要引入搜索引擎,选用elastic search7.2最新
背景介绍
- 官网门户新闻网站中的新闻分类以及分类下的新闻均是通过后端发布。
- 改管理端是外部门所开发,我们的门户是基于他们的后端配置出来。
- so 想定制新功能,只能自己维护开发。
技术方案
- 后端新闻发布后,流程不变,入mysql数据库。新增update_time字段
- 使用logstash定时拉取,这里每分钟拉取一次,入elastic搜索引擎库
elastic环境搭建
这里不详细写elastic search的搭建过程,参考官网,单机版非常简单。
参考
https://www.elastic.co/cn/downloads/elasticsearch,相当简单。
logstash环境搭建
这里使用es7.2对应的版本logstash7.2
这里不详细写logstash的搭建过程,参考官网,当然也非常简单。
https://www.elastic.co/cn/downloads/logstash
logstash mysql source 编写
- 下载mysql驱动包,放到某个目录下,方便配置文件配置路径
- 编写配置文件config/logstash-news-jdbc2es.conf
input {
jdbc {
jdbc_driver_library => "/opt/moudle/logstash-7.2.0/mysql/mysql-connector-java-5.1.46/mysql-connector-java-5.1.46.jar"
jdbc_driver_class => "com.mysql.jdbc.Driver"
jdbc_connection_string => "jdbc:mysql://ip:3306/database"
jdbc_user => "root"
jdbc_password => "123456"
# 是否使用分页方式拉取
jdbc_paging_enabled => true
# 按分钟拉取数据
schedule => "* * * * *"
## 拉取数据sql脚本
statement => "select id,
source,
title,
content,
content as content_all,
time,
url,
classid,
picture_url,
update_time
from news where update_time >= :sql_last_value"
tracking_column_type => "timestam