如何安装 Xunsearch

我只说一个大概,详情请参照官方文档。

首先要安装 Xunsearch,安装命令如下:wget http://www.xunsearch.com/download/xunsearch-full-latest.tar.bz2

tar -jxvf xunsearch-full-latest.tar.bz2

cd xunsearch-full-1.4.9 # 注意此处的文件夹名,可能有不一样

sh ./setup.sh安装完记得要启动 xunsearch 服务程序,示例如下(安装完之后会提示你如何启动):你的安装目录/xunsearch/bin/xs-ctl.sh start

Yii2 如何使用 Xunsearch

首先要在配置文件 frontend/config/main.php 添加 xunsearch 组件:'components' => [

...

'xunsearch' => [

'class' => 'hightman\xunsearch\Connection', // 此行必须

'iniDirectory' => '@common/config',    // 搜索 ini 文件目录,默认:@vendor/hightman/xunsearch/app

'charset' => 'utf-8',   // 指定项目使用的默认编码,默认即时 utf-8,可不指定

],

...

],

在 common/config 目录下添加 xunsearch 配置文件 search.ini, 下面是 yii2cmf 配置:project.name = yii2cmf

project.default_charset = utf-8

server.index = 8383

server.search = 8384

[id]

type = id

[title]

type = title

[content]

type = body

[status]

index = self

tokenizer = full

[published_at]

type = numeric

新建一个 Model 文件,yii2cmf 的 Model 是 common/models/Search.php 里面的代码就跟写 Yii2 一样的:<?php

namespace common\models;

use yii\data\ActiveDataProvider;

class Search extends \hightman\xunsearch\ActiveRecord

{

public function search($keyword)

{

$query = self::find()->where($keyword)->andWhere(['status' => 1]);

$dataProvider = new ActiveDataProvider([

'query' => $query,

'sort' => [

'defaultOrder' => [

'published_at' => SORT_DESC,

]

]

]);

return $dataProvider;

}

}

添加新文章的时候实现自动入库

创建XsBehavior并绑定到ArticleData模型里<?php

namespace common\behaviors;

use common\models\Article;

use common\models\Search;

use yii\base\Behavior;

use yii\db\ActiveRecord;

class XsBehavior extends Behavior

{

public function events()

{

return [

ActiveRecord::EVENT_AFTER_INSERT => [$this, 'afterSaveInternal'],

ActiveRecord::EVENT_AFTER_UPDATE => [$this, 'afterSaveInternal']

];

}

public function afterSaveInternal($event)

{

$article = Article::findOne(['id' => $event->sender->id]);

if (!empty($article)) {

if ($event->name == 'afterInsert') {

$search = new Search();

$search->id = $event->sender->id;

} else {

$search = Search::findOne($event->sender->id);

}

$search->status = $article->status;

$search->title = $article->title;

$search->content = $event->sender->content;

$search->published_at = $article->published_at;

$search->save();

}

}

}

剩下的就是搜索的实现了,更详情代码请参照 yii2cmf 源码

如何导入以前的数据到 Xunsearch

下面是 yii2cmf 导入数据的具体实现(记得数据库用户名和密码,库名要改成自己的):php vendor/hightman/xunsearch/util/Indexer.php --source=mysql://root:root@localhost/yii --sql="SELECT a.id,a.title,d.content,a.status,a.published_at FROM pop_article a INNER JOIN pop_article_data d ON d.id=a.id" --project=common/config/search.ini

查看 Xunsearch 搜索当前导入的词库

在 yii2cmf 根目录运行:php vendor/hightman/xunsearch/util/Quest.php -p common/config/search.ini 'keyword'

最后,源码默认不开启xunsearch搜索,如果要开启,需要自己安装xunsearch服务端,然后修改.env里SEARCH_ENGINE为xunsearch

php yii2 搜索功能,yii2使用xunsearch搜索功能相关推荐

  1. php yii2 搜索功能,Yii2.0全站搜索功能上线

    本搜索自豪的采用 迅搜,对 Yii 支持非常友好,详情参照官方提供的 Xunsearch SDK for PHP.目前只支持帖子标题和内容搜索. 如何安装 Xunsearch 我只说一个大概,详情请参 ...

  2. 一个多功能蓝色漂亮的搜索条

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  3. uniapp 如何给搜索框设值_uni-app搜索功能前后端开发(页面)

    uni-app搜索功能前后端开发(页面) 博客说明文章所涉及的资料来自互联网整理和个人总结,意在于个人学习和经验汇总,如有什么地方侵权,请联系本人删除,谢谢! 借助的插件地址 展示 前端是使用vue, ...

  4. win7计算机搜索功能没有了,win7搜索功能不能用了怎么办|win7搜索功能不见了怎么解决? - 学无忧...

    在Win7中搜索功能相对于WinXP来讲使用越来越方便,随便打开一个文件夹,点击右上角的"搜索"文本框,输入自己需要搜索的内容就可以进行文件搜索了,但最近有网友提到win7搜索功能 ...

  5. 今日头条搜索站长平台(入口)功能简介

    今日头条搜索站长平台(入口)功能简介 今日头条搜索站长平台已正式上线,对于需要流量的网站管理员来说,可以通过今日头条搜索站长平台来了解网站的收录.站点数据.资源等等. 头条搜索站长平台地址: http ...

  6. 织梦++高级搜索php,织梦多条件筛选功能实现(dede联动搜索) - DeDecms

    织梦多条件筛选功能实现(dede联动搜索) 用织梦实现筛选的功能,其实主要就是运用到了织梦的高级搜索功能,然后用ajax去post替换掉本来的结果就可以了. 其实筛选的话,主要有两个问题需要解决,一个 ...

  7. Android实现搜索功能并本地保存搜索历史记录

    本案例实现起来很简单,所以可以直接拿来嵌入项目中使用,涉及到的知识点:  - 数据库的增删改查操作  - ListView和ScrollView的嵌套冲突解决  - 监听软键盘回车按钮设置为搜索按钮  ...

  8. Android 类似淘宝 电商 搜索功能,监听软键盘搜索事件,延迟自动搜索,以及时间排序的搜索历史记录的实现

    最近跳槽去新公司,接受的第一个任务是在 一个电商模块的搜索功能以及搜索历史记录的实现. 需求和淘宝等电商的功能大体差不多,最上面一个搜索框,下面显示搜索历史记录.在EditText里输入要搜索的关键字 ...

  9. python实现浏览器ctrl+f页面搜索功能_JS 页面内容搜索,类似于 Ctrl+F功能的实现代码...

    JS 页面内容搜索,类似于 Ctrl+F功能的实现代码 更新时间:2007年08月13日 19:58:11   作者: WinWebMail 帮  助 查看:[大字 中字 小字] 登录系统时的增强安全 ...

最新文章

  1. 高并发场景下数据库的常见问题及解决方案
  2. 14种轻量级网络综述 — 主干网络篇
  3. 简述一下生成对抗网络GAN(Generative adversarial nets)模型?
  4. 日期格式不符合要求:Unparseable date: quot;3e8a4d83533744c698216535a65850c0quot;
  5. 如何在github上发起一个pull request
  6. 仅用38天 2021年快递业务量已超100亿件
  7. Xtreme Report为windows开发者提供一个完善的类似于Outlook 2003报表的风格
  8. 基于nvidia的ffmpeg编解码加速
  9. 专利写作技巧以及流程
  10. MATAL角度弧度互换
  11. N95滤材之父:滤材才是关键!道翰天琼认知智能机器人平台API接口大脑为您揭秘。
  12. Holt_Winters三次平滑指数实现
  13. 计算机考研就业率,这8个考研专业,就业率一直居高不下,报了就是赚了!
  14. 灾难-NAS服务器用的西数红盘报警处理
  15. tesseract-ocr .NET 识别图片中文字
  16. 线性回归 原理及公式推导
  17. 怎样快速解决EDIUS中文件无法打开问题
  18. 腾讯云服务器被窃取,用来攻击其他服务器,已解决
  19. 2021-2027全球与中国便携式超高清摄像头市场现状及未来发展趋势
  20. 解决Android10和Android11创建文件失败问题

热门文章

  1. 最近公共祖先(LCA)Tarjan
  2. word文档转化html 工具mammoth
  3. python之正则表达式2
  4. ReleaseDC 和DeleteDC的用法区别
  5. Perl Summary
  6. @Primary 使用
  7. 最新版SDWebImage的使用 -- 推荐 - 高效
  8. mysql 官网下载太慢了,来这里!!!
  9. Navicat Premium 12安装包和破解补丁(亲测有效)
  10. java什么是网络接口_Java语言:什么叫面向接口编程(来自网络)