Elasticsearch作为一个非常流行的全文检索引擎,而PHP作为中小网站的优先选择编程语言,搜索是网站或者应用常有的功能,那么PHP怎么样与Elasticsearch进行协同合作完成搜索功能?以及我们怎么样搭建关于PHP版的Elasticsearch开发环境?下面我一一为大家解密。

环境介绍

OS:Windows 7旗舰版 64位

PHP:PHP 7.1.2

MySQL:MySQL 5.5.27

Web服务器:Apache 2.4.3

PHP框架:LV框架

java环境安装

由于Elasticsearch是基于Java环境的,所以我们需要先安装Java环境,可以采用下面的步骤安装Java环境。

进入到Java的官方网站。

下载Java文件并进行安装,由于是Windows环境,所以我们仅仅需要点击下一步下一步就能够完成Java的安装。

将Java的安装路径添加到系统环境变量里,然后执行java -version,如果输出类似下面的内容,说明你的Java环境成功搭建了。

搭建Elasticsearch环境

首先进入Elasticsearch的官方网站,参考上图,我们选择下载ZIP的文件进行环境搭建,下载完文件之后,在E盘新建一个目录,用于存储该ZIP文件的解压文件,参考下图。

打开windows系统的命令窗口,然后将目录切换到上面的Elasticsearch解压目录的bin目录里面,执行elasticsearch.bat文件,就可以开启我们的Elasticsearch服务程序了,然后打开浏览器,访问http://localhost:9200,看看是否真的启动了。

搭建PHP开发环境

上面已经完成了关于Elasticsearch服务端的环境搭建,下面我们来完成关于PHP客户端环境的搭建任务。

用IDE(PhpStorm)打开LV框架,然后找到composer.json文件,在require里面添加下面的内容,然后执行php composer.phar update完成PHP开发环境的搭建。

一些基本的概念

下面的概念都是针对Elasticsearch说明的

index:类似于RDBMS里面的数据库,可以有多个数据库。

type:类似于RDBMS里面的数据表,用于存储后面的document。

document:类似于RDBMS里面的每条数据记录。

id:类似于RDBMS数据表里面的主键,只不过这里仅仅一个字段而已。

查询字段与显示字段:对于显示字段,不提倡进行搜索,仅仅用于显示数据使用,相反,对于查询字段,既可以作为搜索用,也能够作为显示用。

数据库索引和全文检索倒排索引,数据库索引一般是文档ID作为索引,文档内容作为记录,而倒排索引则相反,它以记录里面的关键词作为索引,而文档ID作为记录。

完成我的第一个简单DEMO

上面我已经搭建好了LV版本的PHP开发环境,下面我们来实现文档入库和查询的DEMO。

其他全文检索引擎介绍

其实除了Elasticsearch外,对于我们PHP程序员来说,还有其他几个常用的全文检索引擎,分别是Sphinx、Solr、迅搜等,但是对于中文分词来说,除了迅搜以为,其他几个全文检索引擎都是需要作特殊处理的。

分类: 源码分享 标签: 暂无标签

评论

暂无评论数据

暂无评论数据

目录