您的位置:首页 > 编程语言 > Java开发

elasticsearch 学习笔记

2018-02-10 15:09 218 查看
一、elasticsearch相关资源: https://github.com/elastic/elasticsearch http://www.elastic.co/guide/en/elasticsearch/reference/current/zip-windows.html
环境要求:
java 8
可修改elasticsearch-env.bat JAVA_HOME

启动:
Run 
bin/elasticsearch
 (or 
bin\elasticsearch.bat
 on Windows)

访问 http://localhost:9200/

中文分词插件: https://github.com/medcl/elasticsearch-analysis-ik/releasesbin/elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v6.2.1/elasticsearch-analysis-ik-6.2.1.zip拼音插件:https://github.com/medcl/elasticsearch-analysis-pinyin/releases/download/v6.2.1/elasticsearch-analysis-pinyin-6.2.1.zip
入门资源: http://www.ruanyifeng.com/blog/2017/08/elasticsearch.html https://www.extlight.com/2017/09/27/Elasticsearch-%E5%9F%BA%E7%A1%80%E5%85%A5%E9%97%A8/

二、Logstash

Logstash 是一个开源的数据收集引擎,它具有备实时数据传输能力。它可以统一过滤来自不同源的数据,并按照开发者的制定的规范输出到目的地。 https://www.elastic.co/downloads/logstash
mysql-connector:https://dev.mysql.com/downloads/connector/j/5.1.html
logstash 和 mysql-connector 是用来实现同步 mysql 数据到 elasticsearch 的。logstash 配置:https://github.com/elastic/logstash/issues/3429logstash 需要安装 logstash-input-jdbc 插件:(这一步可能会卡很久,可能的原因是,这个插件使用ruby开发,安装过程需要下载 gem,但是国外的源太慢。)logstash/bin/plugin install logstash-input-jdbc
启动logstash:logstash -f F:\java\logstash-6.2.2\bin\logstash.conf
查看elasticsearch是否同步数据成功:curl '127.0.0.1:9200/_cat/indices?v',如果看到大小在增长则说明同步成功了。

三、kibana安装:
Kibana 是一个开源的分析和可视化平台,旨在与 Elasticsearch 合作。Kibana 提供搜索、查看和与存储在 Elasticsearch 索引中的数据进行交互的功能。开发者或运维人员可以轻松地执行高级数据分析,并在各种图表、表格和地图中可视化数据。 http://www.elastic.co/downloads/kibana
vim config/kibana.yml# 将默认配置改成如下:server.port: 5601server.host: "0.0.0.0"elasticsearch.url: "http://192.168.2.41:9200"kibana.index: ".kibana"四、同步mysql数据至elasticsearch

五、过程中的问题
1.多表同步
2.增量同步(时间戳 :sql_last_start,时区问题)input {
jdbc {
jdbc_driver_library => "F:\java\elasticsearch-6.2.1\lib\mysql-connector-java-5.1.45-bin.jar"
jdbc_driver_class => "com.mysql.jdbc.Driver"
jdbc_connection_string => "jdbc:mysql://123.56.100.207:3306/xsw_web?characterEncoding=utf8&useOldAliasMetadataBehavior=true"
jdbc_user => "root"
jdbc_password => "163@tfy.com"
statement => "SELECT * FROM edu_course_catalog where lastUpdateTime > :sql_last_value"
jdbc_paging_enabled => "true"
jdbc_page_size => "500"
schedule => "* * * * *"
}
}

filter {
mutate {
convert => [ "lastUpdateTime", "string" ]
}

date {
timezone => "Europe/Berlin"
match => ["lastUpdateTime" , "ISO8601", "yyyy-MM-dd HH:mm:ss"]
}

json {
source => "message"
remove_field => ["message"]
}
}

output {
stdout {
codec => rubydebug
}
elasticsearch {
hosts => "127.0.0.1:9200"
index => "course_catalog"
document_id => "%{id}"
}
}
3.首字母、全拼查询,难度较大
4.多类型
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息