一、数据准备
1.在本地安装mysql,创建一张商品表。
create
table
goods(
`id`
int
(11)
primary
key
,
`sn`
varchar
(20),
`
name
`
varchar
(512),
`price`
double
(10,2),
`unit`
varchar
(10),
`ctime` datetime,
`des`
varchar
(1024)
) ENGINE=InnoDB
DEFAULT
CHARSET=utf8;
|
注意:本地装完mysql,如果发现数据中文乱码,需要修改my.cnf文件,改完后重启mysql即可,配置文件位置:/etc/my.cnf
[mysqld]
default
-character-set=utf8
注意:如果修改后不能启动报错试试把
default
-character-set=utf8改为character_set_server=utf8
|
二、全量创建索引编码
项目代码在GitHub上:
HTTPS:https://github.com/mcj2761358/marry.git
SSH : git@github.com:mcj2761358/marry.git
1.对外接口类:GoodsController.java
2.业务封装类:GoodsService.java
3.全量创建索引类:GoodsFullIndex.java
4.ElasticSearch客户端:ESUtils.java
5.数据库连接:JDBCUtils.java
启动项目前,先启动Elasticsearch服务,执行命令 ${ES_HOME}/bin/elasticsearch即可启动.
三、安装Head插件,方便查看索引内容
解压head.zip,将解压后的文件夹放到 ${ES_HOME}/plugins目录下,重启Elasticsearch,访问路径:http://localhost:9200/_plugin/head/
1.索引概览:以下图片展示的是两个索引,每个索引5个分片,和一份复制. (此时,你们可能并没有数据,不要急,往下看)
2. 索引数据:在插件的Browser页面可以查看索引的数据。(此时,你们可能并没有数据,不要急,往下看)
四、开始
1.安装好Head插件,启动Elasticsearch服务器,启动Marry应用,我们开始来见证Elasticsearch的威力。
我们都知道,在搜索之前,必须要创建索引数据,才能搜索。所以,在这之前,我们先看看当前有哪些索引:
2.此时,我们没有任何索引,接下来,我们使用刚刚启动的应用,创建索引:http://localhost:8080/marry/goods/index
3.索引创建成功,我们通过head再看一下当前的索引,已经创建了shop索引
4.我们可以使用Elasticsearch自带的API,查看当前shop索引的所有数据:http://localhost:9200/shop/goods/_search 共两条数据,_source里面的是索引的字段。
5.然后我们使用自己写的接口查一下数据,这个接口就是以后提供给外部系统的接口:http://localhost:8080/marry/goods/search?sn=2015001
6.通过商品名称查询: http://localhost:8080/marry/goods/search?name=可乐
五、总结
至此,我们已经完成了大部分的工作,创建全量索引,通过字段搜索,接下来要做的,就是我们的实时索引。当数据库发生变化时,我们的搜索如何做到实时索引呢,请看下节内容。