如何利用elasticsearch结合mysql进行全文检索

本文所有的都是针对Windows系统,Linux系统与其差不多,可以参考本文。

一、Elasticsearch下载安装启动

首先去官网下载需要的安装包         

有针对Windows的压缩包zip,也有msi这种安装引导程序;解压或安装完成之后,进入bin目录运行elasticsearch.bat;然后在浏览器访问,启动成功返回结果如下:

如果想在一台主机上配置多个节点做测试,许修改配置文件

 

二、下载head插件

        由于本文是针对ES6.x的,ES 5.x 以上版本安装 head 需要 node 和 grunt 环境(之前的直接用plugin命令即可安装),所以前提应该安装Node,完整操作步骤如下:

去官网下载Node安装包,直接按照提示安装即可,出现如下提示说明安装成功

        

        安装完后的目录如下图所示:

        此处说明下:新版的Node.js已自带npm,安装Node.js时会一起安装,npm的作用就是对Node.js依赖的包进行管理,也可以理解为用来安装/卸载Node.js需要装的东西

        

环境配置

        这里的环境配置主要配置的是npm安装的全局模块所在的路径,以及缓存cache的路径,之所以要配置,是因为以后在执行类似:npm install express [-g] (后面的可选参数-g,g代表global全局安装的意思)的安装语句时,会将安装的模块安装到【C:\Users\用户名\AppData\Roaming\npm】路径中,占C盘空间。 例如:我希望将全模块所在路径和缓存路径放在我node.js安装的文件夹中,则在我安装的文件夹【D:\nodejs】下创建两个文件夹【node_global】及【node_cache】如下图:

         

        创建完两个空文件夹之后,打开cmd命令窗口,输入

        

        接下来设置环境变量,关闭cmd窗口,“我的电脑”-右键-“属性”-“高级系统设置”-“高级”-“环境变量”,进入环境变量对话框,在【系统变量】下新建【NODE_PATH】,输入【D:\nodejs\node_global\node_modules】,将【用户变量】下的【Path】修改为【D:\nodejs\node_global】

        

        

        

        

测试

        配置完后,安装个module测试下,我们就安装最常用的express模块,打开cmd窗口, 输入如下命令进行模块的全局安装:

         

        说明:通过npm安装模块时都是去国外的镜像下载的,有的时候由于网络原因会导致安装模块失败,好在阿里有团队维护国内镜像:http://npm.taobao.org/ 上面有使用说明

        修改镜像的方式有两种:

        命令行      

                npm更改默认全局路径和cache路径

                npm config set prefix 新路径

                npm config set cache 新路径

                npm config set registry https://registry.npm.taobao.org

        配置文件方式

                在用户主目录下添加文件.npmrc

                

安装head,访问 https://github.com/mobz/elasticsearch-head 下载 head 插件(选择 zip 压缩包下载方式)。

         

        修改 ~\elasticsearch-6.6.2\elasticsearch-head-master\Gruntfile.js,在对应的位置加上 hostname:’*’ 配置项。

        

        在 ~\elasticsearch-6.6.2\elasticsearch-head-master 下执行 npm install 开始安装,完成后可执行 grunt server 或者 npm run start 运行 head 插件。(此处由于网络原因可能出现失败,可以在网络畅通之后重试,我就重试了四五次~)

        

        安装成功,访问 http://localhost:9100/。

        

        此处可能链接ES不成功,因为Access-Control-Allow-Origin 跨域的问题,可以在 ElasticSearch 6.x 的 ~\config\elasticsearch.yml 文件的末尾加入以下代码,配置后重启ES即可

        

三、安装Logstash和Logstash-input-jdbc插件

去官网现在Logstash对应版本,直接解压安装即可 启动与验证,打开CMD窗口切换到bin目录下执行

         

        启动正常会看到(可以输入测试内容,如“hello world” 进一步验证)

        

安装Logstash-input-jdbc插件

         同样在bin目录下执行,安装正常将打印成功信息。

        

        

验证Logstash-input-jdbc

        以mysql为例下载驱动jar到本地目录,然后编写配置文件

        

        运行测试

        

        出现如下jdbc程序证明mysql数据已经入到ES了,可以进行全文检索了

        


比丘资源网 » 如何利用elasticsearch结合mysql进行全文检索

提供最优质的资源集合

立即查看 了解详情