PHP-elasticsearch配置+基于elasticsearch全文搜索引擎的开发小结

本文介绍了如何配置PHP与Elasticsearch的集成,并分享了基于CodeIgniter框架开发的全文搜索项目的实践经验。作者详细阐述了如何处理数据同步、实现复杂的bool查询,并展示了关键配置代码,特别提到了如何利用copy_to字段优化全文搜索。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  • 首先参照官网内容下载与自己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 = [
                        #这是我elasticsearch中的一个index
                        'index' => '******',

                  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值