接上一篇博客:Windows环境利用Elasticsearch+Kibana+Logstash搭建搜索引擎并实现实时同步MySQL数据,超详细步骤,说的写下篇呢,忘了。。。。现在补上。
其实上一篇已经将关键点都罗列的差不多了。
首先,我们设计一下搜索的简单架构,拿商品(id,name,total,等等其他字段)来说,ES上会同步一份商品表,我们可以把ES看成一个黑箱,只需要给它关键字,它就返回给你商品id,然后再拿着商品id去商品表查询即可。也就是ES上仅需要保存id,name,total(提前过滤售罄商品)即可。
其整体架构如下:
也就是说,只需要解决三个问题即可:
1.发送内容里的查询条件如何编写
2.怎么向ES发送请求。
3.如何解析返回结果。
问题1:查询条件如何编写调试。
通过上篇博文可以知道,格式是json,调试工具就是Kibana,语法直接参考ES官方文档,很简单,调试完之后,将调试好的json发送到某个URL即可,问题2讲这个URL如何获得。
上篇我写的简单json:
{
"query": {
"match_all": {
}
}
}
这个就是请求体的基本结构。
问题2:如何向ES发送请求。
回顾一下上一篇博文的配置,端口我配置为了9200,实际上ES已经在这个端口下创建了服务。请求这个端口即可。
上篇step4的配置我先再贴一下:
input {
stdin {
}
jdbc {
jdbc_connection_string => "jdbc:mysql://localhost:3306/你的数据库名字"
jdbc_user => "你的数据库用户名"
jdbc_password => "你的数据库密码"
jdbc_driver_library => "C:/logstash/bin/mysql-connector-java-5.1.44-bin.jar"
jdbc_driver_class