第七讲—快速入门二(全量索引和搜索)

一、数据准备

        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  

        解压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=可乐

        

       

五、总结

        至此,我们已经完成了大部分的工作,创建全量索引,通过字段搜索,接下来要做的,就是我们的实时索引。当数据库发生变化时,我们的搜索如何做到实时索引呢,请看下节内容。   

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值