安装 Logstash 并配置 ik 分词器
安装 logstash
安装包下载:
下载地址
注意:需要和 Elasticsearch 版本相对应
上传至服务器并解压
tar -zxvf logstash-6.4.3.tar.gz
移动至安装目录
mv logstash-6.4.3 /usr/local/
创建数据同步相关的目录和配置
创建目录
mkdir /usr/local/logstash-6.4.3/sync
创建同步配置文件
vim logstash-db-sync.conf
input {jdbc {# 设置 MySql/MariaDB 数据库 url 以及数据库名称jdbc_connection_string => "jdbc:mysql://ip:port/dbName?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true"# 用户名和密码jdbc_user => "username"jdbc_password => "password"# 数据库驱动所在位置,可以是绝对路径或者相对路径jdbc_driver_library => "/usr/local/logstash-6.4.3/sync/mysql-connector-java-5.1.41.jar"# 驱动类名jdbc_driver_class => "com.mysql.jdbc.Driver"# 开启分页jdbc_paging_enabled => "true"# 分页每页数量,可以自定义jdbc_page_size => "1000"# 执行的 sql 文件路径statement_filepath => "/usr/local/logstash-6.4.3/sync/foodie-items.sql"# 设置定时任务间隔 含义:分、时、天、月、年,全部为*默认含义为每分钟跑一次任务schedule => "* * * * *"# 索引类型type => "_doc"# 是否开启记录上次追踪的结果,也就是上次更新的时间,这个会记录到 last_run_metadata_path 的文件use_column_value => true# 记录上一次追踪的结果值last_run_metadata_path => "/usr/local/logstash-6.4.3/sync/track_time"# 如果 use_column_value 为true,配置本参数,追踪的 column 名,可以是自增 id 或者时间tracking_column => "updatedTime"# tracking_column 对应字段的类型tracking_column_type => "timestamp"# 是否清除 last_run_metadata_path 的记录,true 则每次都从头开始查询所有的数据库记录clean_run => false# 数据库字段名称大写转小写lowercase_column_names => false} } output {elasticsearch {# es 地址hosts => ["172.24.114.224:9200"]# 同步的索引名index => "foodie-items-ik"# 设置 _docID 和数据相同document_id => "%{itemId}"}# 日志输出stdout {codec => json_lines} }
创建执行的 SQL 文件
vim foodie-items.sql
SELECTi.id AS itemId,i.item_name AS itemName,i.sell_counts AS sellCounts,ii.url AS imgUrl,tempSpec.price_discount AS price,i.updated_time AS updatedTime FROMitems i LEFT JOINitems_img ii ONi.id = ii.item_id LEFT JOIN(SELECT item_id,MIN(price_discount) AS price_discount FROM items_spec GROUP BY item_id) tempSpec ONi.id = tempSpec.item_id WHEREii.is_main = 1 ANDi.updated_time > :sql_last_value
sql_last_value
为上一次同步的时间上传数据库驱动
具体路径同上配置:
jdbc_driver_library
启动 logstash
cd /usr/local/logstash-6.4.3/bin
./logstash -f ../sync/logstash-db-sync.conf
给 logstash 配置分词器
两种配置方式:
- 手动创建索引,然后 logstash 只负责同步即可
- 使用 logstash 的自定义模板功能,让 logstash 同步之前自动创建好 mappings 并设置分词器
下面介绍第二种方式:
创建配置文件
首先,查看 es 默认的 logstash 模板:
GET -> http://ip:9200/_template/logstash
{"logstash": {"order": 0,"version": 60001,"index_patterns": ["logstash-*"],"settings": {"index": {"refresh_interval": "5s"}},"mappings": {"_default_": {"dynamic_templates": [{"message_field": {"path_match": "message","match_mapping_type": "string","mapping": {"type": "text","norms": false}}},{"string_fields": {"match": "*","match_mapping_type": "string","mapping": {"type": "text","norms": false,"fields": {"keyword": {"type": "keyword","ignore_above": 256}}}}}],"properties": {"@timestamp": {"type": "date"},"@version": {"type": "keyword"},"geoip": {"dynamic": true,"properties": {"ip": {"type": "ip"},"location": {"type": "geo_point"},"latitude": {"type": "half_float"},"longitude": {"type": "half_float"}}}}}},"aliases": {}} }
这里我们只需要修改以下几个地方,然后删除最外层的
{ "logstash": }
即可作为自定义模板使用:"order": 99, "version": 1, "index_patterns": ["*"], "mappings" -> "_default_" -> "dynamic_templates" -> "string_fields" -> "mapping": 增加 "analyzer": "ik_max_word"
修改后得到以下内容,我们将它命名为:
logstash-ik.json
,上传至 sync 目录下:{"order": 99,"version": 1,"index_patterns": ["*"],"settings": {"index": {"refresh_interval": "5s"}},"mappings": {"_default_": {"dynamic_templates": [{"message_field": {"path_match": "message","match_mapping_type": "string","mapping": {"type": "text","norms": false}}},{"string_fields": {"match": "*","match_mapping_type": "string","mapping": {"type": "text","norms": false,"analyzer": "ik_max_word","fields": {"keyword": {"type": "keyword","ignore_above": 256}}}}}],"properties": {"@timestamp": {"type": "date"},"@version": {"type": "keyword"},"geoip": {"dynamic": true,"properties": {"ip": {"type": "ip"},"location": {"type": "geo_point"},"latitude": {"type": "half_float"},"longitude": {"type": "half_float"}}}}}},"aliases": {} }
修改
logstash-db.sync.conf
文件,增加如图配置项:# 定义模板名称 template_name => "myik" # 模板所在位置 template => "/usr/local/logstash-6.4.3/sync/logstash-ik.json" # 重写模板 template_overwrite => true # 默认为 true,false 关闭 logstash 自动管理模板的功能,如果自定义模板,则设置为 false manage_template => false
重启 logstash,请求
GET -> http://ip:9200/_template/myik
查看配置是否生效注意:分词器配置以后,只会对新创建的索引的文档数据进行分词,对已存在索引的文档数据不生效。
通过 header 插件查看索引信息进行再次验证:
接下来就可以对中文进行分词了,至此配置结束。
安装 Logstash 并配置 ik 分词器相关推荐
- requirednew基于xml配置日志不回滚_Elasticsearch配置IK分词器的远程词库
在生活中很多很多地方都涉及到了全文检索,最常见的就好比日常使用到的百度搜索等搜索引擎,也都是基于全文检索来实现的:全文检索种类较多,就好比Elasticsearch.Sorl等. 为Ealsticse ...
- es ik 词库添加词语_Elasticsearch配置IK分词器的远程词库
在生活中很多很多地方都涉及到了全文检索,最常见的就好比日常使用到的百度搜索等搜索引擎,也都是基于全文检索来实现的:全文检索种类较多,就好比Elasticsearch.Sorl等. 为Ealsticse ...
- Elasticsearch+elasticsearch-head的安装+Kibana环境搭建+ik分词器安装
一.安装JDK1.8 二.安装ES 三个节点:master.slave01.slave02 1.这里下载的是elasticsearch-6.3.1.rpm版本包 https://www.elastic ...
- window10下安装Elasticsearch(es)和IK分词器
1 安装Elasticsearch 7.x 1.1 下载地址 https://www.elastic.co/cn/downloads/elasticsearch 1.2 下载后解压的目录结构 Ela ...
- Solr配置IK分词器
配置步骤 下载分词器 上传文件 添加jar包 添加配置文件 添加分词器,配置业务域 测试分词器 第一步 下载IK分词器 第二步 上传文件 查看 第三步 添加jar包 到solr工程 cp IKAnal ...
- elaseticsearch 配置ik分词器的热更新_Elasticsearch从入门到放弃:分词器初印象
Elasticsearch 系列回来了,先给因为这个系列关注我的同学说声抱歉,拖了这么久才回来,这个系列虽然叫「Elasticsearch 从入门到放弃」,但只有三篇就放弃还是有点过分的,所以还是回来 ...
- Elasticsearch学习系列一(部署和配置IK分词器)
- [Linux]Linux下安装和配置solr/tomcat/IK分词器 详细实例二.
为了更好的排版, 所以将IK分词器的安装重启了一篇博文, 大家可以接上solr的安装一同查看. [Linux]Linux下安装和配置solr/tomcat/IK分词器 详细实例一: http://w ...
- Linux下安装和配置solr/tomcat/IK分词器 详细实例二.
为了更好的排版, 所以将IK分词器的安装重启了一篇博文, 大家可以接上solr的安装一同查看. [Linux]Linux下安装和配置solr/tomcat/IK分词器 详细实例一: http://w ...
最新文章
- Latex快速入门, Windows 安装使用编译技巧归纳
- CUDA系列学习(三)GPU设计与结构QA coding练习
- 腾讯Groupon合资团购网站 高朋网悄然上线
- Java基础---常用类之Math类 and Syetem类
- IT历史:IT史重大失败教训
- 追加easyui元素,完成后调用$.parser.parse()方法渲染
- 翻译: Swift 中信号量的美妙之处
- 异速联显示连接服务器失败,异速联客户端登陆时正在连接服务器
- mac os下可能是最好的豆瓣电台——diumoo
- 4针串口线接法图_RS232串口线接口及接法(串口通信RS232的基本接法)
- ❤️ 前端如何与后端对接?当年差点和后端同学打起来了!
- 低功耗蓝牙ATT/GATT/Profile/Service/Characteristic解读
- Andromeda:适用于多进程架构的组件通信框架
- [LED]如何配置LCD背光和LED,调试方法
- mysql preparing状态_【Docker】在集群中部署应用为什么始终是Preparing状态
- Scrapy第十五篇:后起之秀-Playwright
- 前端开发-后台信息管理页面的开发流程
- 火了70年的厨电界“好莱坞大明星”,各种影视剧都用它当道具来提气丨钛空最生活
- android微信源生SDK分享问题
- 项目讲解-AVM 3D 全景泊车-畸变矫正(1)