- 首先参照官网内容下载与自己php以及elasticsearch版本相匹配的Php-elasticsearch,按照官网内容进行配置
https://www.elastic.co/guide/en/elasticsearch/client/php-api/current/index.html
接下来讲一下我基于elasticsearch-PHP开发的一个全文搜索项目
- 说明一下:PHP使用Codeignite框架,前端以及后端很多东西都是现成的,我只是完成了elasticsearch与mysql数据的同步,以及将数据从elasticsearch按照一定的逻辑提供给前端网页。
- 我需要完成的内容是按照搜索关键字、搜索范围以及搜索类型进行排列组合考虑每种可能的情况的解决办法。中间涉及到elasticsearch bool查询(should must must not filter 等)
- 下面截图是我的全文搜索涉及到的关键字以及hosts(elasticsearch 域名的设置),get_search()函数的参数是从前端传过来的。elasticsearch按照这些参数完成搜索。
- 具体实现是根据这些参数以及前端的需求进行排列组合,对于每一种可能出现的状况书写查询匹配代码
- 下面按照$keys=”name”作为示例讲解:
case "name":
if(in_array($search_category,$category)){
$params = [
'index' => '******',