logstash数据遇到了问题,数据抓取失败了,抓到的数据是空的,不知道怎么解决,希望得到解答,感谢。mysql数据库对应的表是数据库myblog2下的cmsblog,id是int类型。
要抓取到es的是这几个字段

这是sql文件的语句,在Navicat验证是可以查到数据的:
SELECT id,title,content,blog_desc from cms_blog where type='1'
这是mysql-es.config的:
input {
stdin {
}
jdbc {
# 配置数据库信息
jdbc_connection_string => "jdbc:mysql://127.0.0.1:3306/myblog2?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai"
jdbc_driver_class => "com.mysql.cj.jdbc.Driver"
jdbc_user => "root"
jdbc_password => "123456"
jdbc_paging_enabled => "true"
jdbc_page_size => "50000"
jdbc_default_timezone => "Asia/Shanghai"
# 执行 sql 语句文件
statement_filepath => "D:\soft\elasticsearch-7.6.1-windows-x86_64\elasticsearch-7.6.1\logstash-7.6.2\jdbc.sql"
# 定时字段 各字段含义(由左至右)分、时、天、月、年,全部为*默认含义为每分钟都更新
schedule => "* * * * *"
# 是否将 sql 中 column 名称转小写
lowercase_column_names => false
}
}
output {
elasticsearch {
hosts => ["127.0.0.1:9201"]
index => "cmsblog"
# 文档_id,%{goods_id}意思是取查询出来的goods_id的值,并将其映射到shop的_id字段中
# 文档_id,%{goodsId}如果是别名,意思是取查询出来的goodsId的值,并将其映射到shop的_id字段中
#document_id => "%{id}"
#document_id => "%{id}"
manage_template => false
}
stdout {
codec => json_lines
#codec => rubydebug
}
}
想后端发起请求,得到的数据是空的

后台打印出来的日志,拿到的数据为空
Repeatable - 开始处理请求: /es/blogs
调用了获取博客方法[]
Repeatable - 急速处理请求: /es/blogs
jwtFilter - 请求处理完毕: /es/blogs
20:55:19.900 [http-nio-8080-exec-13] DEBUG o.s.s.w.c.SecurityContextPersistenceFilter - [doFilter,118] - Cleared SecurityContextHolder to complete request


后面我发现logstack后台有这个报错:

我就修改了配置文件:

再次发起请求后:
logstack后台还是这个错,



Document.java:
@Data
@Document(indexName = "cmsblog",shards = 3,replicas = 0,createIndex = false)
public class BlogDocument {
// 主键ID(数据库)
@Id
// @Field(type = FieldType.Long)
private Integer id;
// 内容核心字段(使用 ik 分词)
@Field(type = FieldType.Text, analyzer = "ik_max_word", searchAnalyzer = "ik_smart")
private String title;
@Field(type = FieldType.Text, analyzer = "ik_max_word", searchAnalyzer = "ik_smart")
private String content;
// 辅助信息字段
@Field(name = "blog_desc",type = FieldType.Text, analyzer = "ik_max_word")
private String blogDesc; // 简介
}
**Controller **:

对应的Service :

看下来好像是logstack抓取出来的id是一段字符串,类型好像出了问题。

