当前位置:首页 > 编程教程 > php技术文章 > Yii2框架整合Xunsearch搜索引擎的方法

实例解析Yii2框架整合Xunsearch搜索引擎的方法

  • 发布时间:
  • 作者:码农之家
  • 点击:115

这篇文章主要知识点是关于Yii2、Xunsearch、搜索引擎、的内容,如果大家想对相关知识点有系统深入的学习,可以参阅以下电子书

PHP、MySQL与JavaScript学习手册
  • 类型:PHP大小:76 MB格式:PDF作者:Robin Nixon
立即下载

Yii2框架整合Xunsearch搜索引擎的方法

本文实例讲述了Yii2框架整合Xunsearch搜索引擎的方法。分享给大家供大家参考,具体如下:

公司一直用的YII2框架,然后要做一个中文搜索引擎,所有想的Xunsearch这个项目,之前有文章提到了,怎么安装Xunsearch服务端。(参考《PHP在innodb引擎下快速代建全文搜索功能简明教程》)

xunsearch暂时只有Liunx的服务端和PHP-SDK。但作者确提供了一个YII2的扩展。突然感觉好幸福的说。

本来是通过使用PHP-SDK写一个简单的添加索引和更新索引还有删除索引的功能,但有考虑到多项目的情况。就是一个Xunsearch可以被多个项目公用,所有配置文件放置在每一个项目的配置文件里面,根据这个项目的配置文件来区分每一个搜索数据库。这是我一开始的想法,但重点是不是怎么想,而是怎么去做。实践才是硬道理,然后就遇到下面的这些问题。

http://www.yiiframework.com/extension/yii-xunsearch/#hh4 这里目标链接,我接下来要说下安装心得

// application components
  'components => [
    // ... other components ...
    'xunsearch' => [
      'class' => 'hightman\xunsearch\Connection', // 此行必须,这里不一定是这写的,可能是hightman.xunsearch.Connection 根据实际项目出发
      'iniDirectory' => '@app/config',  // 搜索 ini 文件目录,默认:@vendor/hightman/xunsearch/app
      'charset' => 'utf-8',  // 指定项目使用的默认编码,默认即时 utf-8,可不指定
    ],
  ],

然后,如果你的PHP环境是集成的安装包,可能会遇到这么一个问题

Unexpected character in input: '\' (ASCII=92) state=1

网上有人说是 php.ini 里面的配置问题,说把,short_open_tag 改成 On,我第一看感觉很有道理,然后找到发现,本来就是On。

然后到http://stackoverflow.com(全世界的技术都在用的一个技术论坛,官方语言是英语)上面去找,果然找到了。知道真相的我,真的是不想多了。

因为那个YII2的扩展用到了PHP5.3才有的命名空间特效。而我的本地PHP版本是5.2.6。我表示淡定不了。折磨一天的事情,居然是因为PHP版本太低。。。

就总结到这里。

更多关于PHP相关内容感兴趣的读者可查看本站专题:《php正则表达式用法总结》、《php curl用法总结》、《PHP数组(Array)操作技巧大全》、《php排序算法总结》、《PHP常用遍历算法与技巧总结》、《PHP数据结构与算法教程》、《php程序设计算法总结》、《PHP数学运算技巧总结》、《PHP运算与运算符用法总结》、《php字符串(string)用法总结》及《php常见数据库操作技巧汇总》

希望本文所述对大家PHP程序设计有所帮助。

以上就是本次给大家分享的关于java的全部知识点内容总结,大家还可以在下方相关文章里找到相关文章进一步学习,感谢大家的阅读和支持。

PHP 相关电子书
学习笔记
网友NO.157359

Yii2使用dropdownlist实现地区三级联动功能的方法

本文实例讲述了Yii2使用dropdownlist实现地区三级联动功能的方法。分享给大家供大家参考,具体如下: 视图部分: ?phpuse yii\helpers\Url;use yii\widgets\ActiveForm;use yii\helpers\ArrayHelper;use yii\helpers\Html;/* @var $this yii\web\View *//* @var $model common\search\service\ItemSearch *//* @var $form yii\widgets\ActiveForm */?div class="row" div class="item-search" ?php $form = ActiveForm::begin([ 'action' = ['index'], 'method' = 'get', 'options' = ['class' = 'form-inline'] ]); ? ?= $form-field($model, 'cityName', ['options' = ['class' = 'form-group col-lg-2']])-dropDownList(ArrayHelper::map($cities, 'id', 'name'), ['prompt' = '请选择城市'])-label('请选择城市', ['class' = 'sr-only']) ? ?= $form-field($model, 'areaName', ['options' = ['class' = 'form-group col-lg-2']])-dropDownList(ArrayHelper::map($areas, 'id', 'name'), ['prompt' = '请选择区县'])-label('请选择区县', ['class' = 'sr-only']) ? ?= $form-field($model, 'communityNa……

网友NO.265426

yii2.0数据库迁移教程【多个数据库同时同步数据】

本文讲述了yii2.0数据库迁移的方法。分享给大家供大家参考,具体如下: 创建迁移 使用如下命令来创建一个新的迁移: yii migrate/create name 必填参数 name 的作用是对新的迁移做一个简要的描述。例如,如果这个迁移是用来往多个数据库同一张表 ( 假设每个数据库都有news表 ) 添加字段的,那么你可以使用addColumn_news (该名称自定义)这个名称并运行如下命令: yii migrate/create addColumn_news 注意: 因为 name 参数会被用来生成迁移的类名的一部分,所以该参数应当只包含字母、数字和下划线。 如上命令将会在 @app/migrations 目录下创建一个新的名为 m150101_185401_addColumn_news.php 的 PHP 类文件。该文件包含如下的代码,它们用来声明一个迁移类 m150101_185401_addColumn_news,并附有代码框架: ?phpuse yii\db\Schema;use yii\db\Migration;class m150101_185401_addColumn_news extends Migration{//crea……

网友NO.243660

完美利用Yii2微信后台开发的系列总结

网上有很多关于YII2.0微信开发教程,但是太过复杂凌乱,所以今天在这里给大家整理总结利用Yii2微信后台开发的系列了,给需要的小伙伴们参考。 一:接入微信 Yii2后台配置 1.在app/config/params.php中配置token参数 return [ //微信接入 'wechat' =[ 'token' = 'your token', ],]; 2.在app/config/main.php中配置路由 因为接口模块使用的RESTful API,所以需要定义路由规则。 'urlManager' = [ 'enablePrettyUrl' = true, 'enableStrictParsing' = true, 'showScriptName' = false, 'rules' = [ [ 'class' = 'yii\rest\UrlRule', 'controller' = 'wechat', 'extraPatterns' = [ 'GET valid' = 'valid', ], ], ],], 3.在app/controllers中新建WechatController ?phpnamespace api\controllers;use Yii;use yii\rest\ActiveController;class WechatController extends ActiveController{ public $modelClass = ''; public function actionValid() { $echoStr = $_GET["echostr"]; $signature = $_GET["signature"]; $timestamp = $_GET["timestamp"]; $nonce……

网友NO.566953

Yii2中添加全局函数的方法分析

本文实例讲述了Yii2中添加全局函数的方法。分享给大家供大家参考,具体如下: 方法一 这种方法就是直接在入口文件web/index.php里面写函数,示例代码如下: // something code ……// 全局函数function pr($var){ $template = php_sapi_name() !== 'cli' ? 'pre%s/pre' : "\n%s\n"; printf($template, print_r($var, true)); exit;}(new yii\web\Application($config))-run(); 这个方法虽然可以实现,但是本人不推荐,因为改了框架本身的代码,而且如果全局函数多了的话,也不好管理。 方法二(推荐) 这种方法主要是利用 composer 来实现,在 composer.json 文件里面添加如下代码: "autoload": { "files": [ "common/components/GlobalFunctions.php" ]}, 添加完之后记得用终端在项目根目录下执行 composer update 命令 然后我们的全局函数都可以写在 GlobalFunctions.php 文件里面,这个方法实现的话 IED 是会用代码提示的。 GetYii 有用到第二种……

网友NO.343114

yii2 modal弹窗之ActiveForm ajax表单异步验证

前面我们讲述了yii2中如何使用modal以及yii2 gridview列表内更新操作如何使用modal的问题,本以为modal要告一段落可以开始新的话题了,但是实际问题往往超乎想像,这不modal弹窗提交的表单说是怎么验证的问题又出来了,又出来了! 首先撇开modal不谈,我们就yii2 ActiveForm如何以Ajax的方式提交表单做一个简单的说明,这也是我们今天主题的重点,modal确实没啥好说了。后面若是有我再把话改回来。 yii2中,ActiveForm默认做了客户端验证,但是表单的提交,却不是无刷新的。也就是常常看到的表单提交后页面会刷新。如果想要开启无刷新的模式,只需要在ActiveForm开始开启enableAjaxValidation即可,像下面这样 ?php $form = ActiveForm::begin(['id' = 'form-id','enableAjaxValidation' = true,]); ? 注意哦,id和enableAjaxValidation一个都不能少。 接着看服务端的实现 if ($model-load(Yii::$app-request-……

<
1
>

Copyright 2018-2020 www.xz577.com 码农之家

版权投诉 / 书籍推广 / 赞助:520161757@qq.com