项目背景
先介绍项目背景,公司有一个需求是需要搜索车辆,例如通过关键词"白色大众",可以把颜色为"白色",品牌为"大众"的相关车辆搜索出来。 当时在选择全文索引时主要有两张方案ElasticSearch和Solr。考虑到Solr适合做实时搜索,所以最后选型用了ElasticSearch(虽然车辆信息的搜索不需要实时搜索,但因为项目中其他业务需要实时搜索所有)。
相关技术
- ElasticSearch 6.8
- Logstash-7.1.1
- Elasticsearch-analysis-ik-6.8.0
- SpringBoot
- Elasticsearch-head
Logstash配置
启动配置文件
input {
stdin {
}
jdbc {
# 索引类型
type => "carDemo"
# mysql 数据库链接,shop为数据库名
jdbc_connection_string => "jdbc:mysql://127.0.0.1:3306/demo?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowMultiQueries=true&serverTimezone=GMT%2B8"
# 用户名和密码
jdbc_user => "root"
jdbc_password => "XXXXXX"
# 驱动
jdbc_driver_library => "/XXXXXX/mysql-connector-java-8.0.15.jar"
# 驱动类名
jdbc_driver_class => "com.mysql.jdbc.Driver"
jdbc_paging_enabled => "true"
jdbc_page_size => "50000"
clean_run => "true"
#不转小写
lowercase_column_names => false
# 执行的sql 文件路径+名称
statement_filepath => "/XXXXXXXX/c