3.3 搭建ES环境
3.3.1 ES安装
开发环境使用ES单机环境,启动ES服务端。
注意:旧的ES环境,可以删除elasticsearch-
6.2.1\data\nodes目录以完全清除ES环境。
安装elasticsearch-head并启动。
3.3.2 创建索引库
创建索引库
创建xc_course索引库,一个分片,0个副本。
3.3.3 创建映射
Post http://localhost:9200/xc_course/doc/_mapping
{
"
properties
"
: {
"
description
"
: {
"
analyzer
"
:
"
ik_max_word
"
,
"
search_analyzer
"
:
"
ik_smart
"
,
"
type
"
:
"
text
"
},
"
grade
"
: {
"
type
"
:
"
keyword
"
},
"
id
"
: {
"
type
"
:
"
keyword
"
},
"
mt
"
: {
"
type
"
:
"
keyword
"
},
"
name
"
: {
"
analyzer
"
:
"
ik_max_word
"
,
"
search_analyzer
"
:
"
ik_smart
"
,
"
type
"
:
"
text
"
},
"
users
"
: {
"
index
"
: false,
"
type
"
:
"
text
"
},
"
charge
"
: {
"
type
"
:
"
keyword
"
},
"
valid
"
: {
"
type
"
:
"
keyword
"
},
"
pic
"
: {
"
index
"
: false,
"
type
"
:
"
keyword
"
},
"
qq
"
: {
"
index
"
: false,
"
type
"
:
"
keyword
"
},
"
price
"
: {
"
type
"
:
"
float
"
},
"
price_old
"
: {
"
type
"
:
"
float
"
},
"
st
"
: {
"
type
"
:
"
keyword
"
},
"
status
"
: {
"
type
"
:
"
keyword
"
},
"
studymodel
"
: {
"
type
"
:
"
keyword
"
},
"
teachmode
"
: {
"
type
"
:
"
keyword
"
},
"
teachplan
"
: {
"
analyzer
"
:
"
ik_max_word
"
,
"
search_analyzer
"
:
"
ik_smart
"
,
"
type
"
:
"
text
"
},
"
expires
"
: {
"
type
"
:
"
date
"
,
"
format
"
:
"
yyyy
‐
MM
‐
dd HH:mm:ss
"
},
"
pub_time
"
: {
"
type
"
:
"
date
"
,
"
format
"
:
"
yyyy
‐
MM
‐
dd HH:mm:ss
"
},
"
start_time
"
: {
"
type
"
:
"
date
"
,
"
format
"
:
"
yyyy
‐
MM
‐
dd HH:mm:ss
"
},
"
end_time
"
: {
"
type
"
:
"
date
"
,
"
format
"
:
"
yyyy
‐
MM
‐
dd HH:mm:ss
"
}
}
}
3.4 Logstash创建索引
Logstash是ES下的一款开源软件,它能够同时 从多个来源采集数据、转换数据,然后将数据发送到Eleasticsearch中创建索引。
本项目使用Logstash将MySQL中的数据采用到ES索引中。
3.4.1 下载Logstash
下载Logstash6.2.1版本,和本项目使用的Elasticsearch6.2.1版本一致。
解压:
3.4.2 安装logstash-input-jdbc
logstash-input-jdbc 是ruby开发的,先下载ruby并安装
下载地址: https://rubyinstaller.org/downloads/
下载2.5版本即可。
安装完成查看是否安装成功
Logstash5.x以上版本本身自带有logstash-input-jdbc,6.x版本本身不带logstash-input-jdbc插件,需要手动安装
安装成功后我们可以在logstash根目录下的以下目录查看对应的插件版本
3.4.3 创建模板文件
Logstash的工作是从MySQL中读取数据,向ES中创建索引,这里需要提前创建mapping的模板文件以便logstash使用。
在logstach的confifig目录创建xc_course_template.json,内容如下:
本教程的xc_course_template.json目录是:D:/ElasticSearch/logstash-6.2.1/confifig/xc_course_template.json
{
"
mappings
"
: {
"
doc
"
: {
"
properties
"
: {
"
charge
"
: {
"
type
"
:
"
keyword
"
},
"
description
"
: {
"
analyzer
"
:
"
ik_max_word
"
,
"
search_analyzer
"
:
"
ik_smart
"
,
"
type
"
:
"
text
"
},
"
end_time
"
: {
"
format
"
:
"
yyyy
‐
MM
‐
dd HH:mm:ss
"
,
"
type
"
:
"
date
"
},
"
expires
"
: {
"
format
"
:
"
yyyy
‐
MM
‐
dd HH:mm:ss
"
,
"
type
"
:
"
date
"
},
"
grade
"
: {
"
type
"
:
"
keyword
"
},
"
id
"
: {
"
type
"
:
"
keyword
"
},
"
mt
"
: {
"
type
"
:
"
keyword
"
},
"
name
"
: {
"
analyzer
"
:
"
ik_max_word
"
,
"
search_analyzer
"
:
"
ik_smart
"
,
"
type
"
:
"
text
"
},
"
pic
"
: {
"
index
"
: false,
"
type
"
:
"
keyword
"
},
"
price
"
: {
"
type
"
:
"
float
"
},
"
price_old
"
: {
"
type
"
:
"
float
"
},
"
pub_time
"
: {
"
format
"
:
"
yyyy
‐
MM
‐
dd HH:mm:ss
"
,
"
type
"
:
"
date
"
},
"
qq
"
: {
"
index
"
: false,
"
type
"
:
"
keyword
"
},
"
st
"
: {
"
type
"
:
"
keyword
"
},
"
start_time
"
: {
"
format
"
:
"
yyyy
‐
MM
‐
dd HH:mm:ss
"
,
"
type
"
:
"
date
"
},
"
status
"
: {
"
type
"
:
"
keyword
"
},
"
studymodel
"
: {
"
type
"
:
"
keyword
"
},
"
teachmode
"
: {
"
type
"
:
"
keyword
"
},
"
teachplan
"
: {
"
analyzer
"
:
"
ik_max_word
"
,
"
search_analyzer
"
:
"
ik_smart
"
,
"
type
"
:
"
text
"
},
"
users
"
: {
"
index
"
: false,
"
type
"
:
"
text
"
},
"
valid
"
: {
"
type
"
:
"
keyword
"
}
}
}
},
"
template
"
:
"
xc_course
"
}