怎么在thinkphp使用xunsearch?

家电修理 2023-07-16 19:17www.caominkang.com电器维修

如何在thinkphp框架中使用xunsearch全文搜索引擎

来在 https://.3maio./-detail/8

注意 该文档是基于https://github./ShaoZeMing/xunsearch-laravel封装的xunsearch的SDK

前提 安装好xunsearch服务器端

安装xunsearch-laravel SDK的步骤
  1. 使用poser安装

    php poser.phar require shaozeming/xunsearch-laravel "dev-master"
    

然后就会在Thinkphp的index.php文件同级目录下创建一个vendor目录。SDK就在这个目录下

  1. 在要使用到SDK的方法中引入SDK

      require('./vendor/autoload.php');
    
      //接下来就是实例化sdk中的类就可以sdk的方法了。
    
      $xs = ne shaozemingxunsearchSearch('demo');
    

完整步骤

前言

a. 这个步骤的前提是php程序没有和xunsearch服务端在同一台服务器上。

b. 我的xunsearch是安装到centos环境上,安装目录为/usr/local/xunsearch/

c. xunsearch服务器的IP地址是192.168.122.88

  1. 安装sdk

    //注意该命令要在index.php同级目录下运行
    php poser.phar require shaozeming/xunsearch-laravel “dev-master”

  2. 启动xunserach服务器端

    /usr/local/xunsearch/bin/xs-ctl.sh -b i start
    
  3. 在下载好的sdk目录下编写xunsearch配置文件

    也就是找到vendor/shaozeming/xunsearch-laravel/src/app目录,在这个目录下创建shop.ini。 由于xunsearch服务端只能在linux服务器下运行,你的ini配置文件端口需要加入对应服务端IP地址,如示例代码

    project.name = shop
    project.default_charset = utf-8
    server.index = 192.168.122.88:8383
    server.search = 192.168.122.88:8384

    [id]
    type = id

    [gname]
    index = self

    [price]

    具体配置文件的参数如何设置,请参考xunsearch官网(http://.xunsearch./doc/php/guide/ini.guide)。

    这里大概说一下

因为我需要对商品表的gname进行搜索,所以需要index=self,其他字段都不需要搜索,只需要查询出来。

  1. 后台新增商品数据的时候,除了将商品数据插入数据库,需要将商品数据插入到xunsearch中。代码如下

     $data=[
      'id' => 1,
      'gname' => '测试数据',
      'price' => 12
     ];
    
     //shop就是配置文件中的project.name的值
     $xs = ne shaozemingxunsearchSearch('shop');
     $xs->addIndex($data);   //创建索引
    
  2. 如何进行搜索

     $xs = ne shaozemingxunsearchSearch('shop');
    
     //在searchAll()方法中传入你要搜索的内容
     $data = $xs->searchAll('测试');
    

Copyright © 2016-2025 www.caominkang.com 曹敏电脑维修网 版权所有 Power by