简单易用最关键,菜狗搜索:https://github.com/rock365/caigou
这是一个轻量级的PHP全文检索类库,完全免费,可用于中文内容的全文检索,基于倒排索引结构和ngram分词开发,引入即可使用。如果你的文章不多,搜索场景简单,那么这个插件对你来说非常适合。
接口包括:创建、删除索引库,导入数据、构建索引、搜索。注意,此引擎不适合大量数据。
引入文件
require_once 'yourdirname/caigou/Caigou.php';
导入数据
$tableName = 'test';//索引库名称
$Caigou = new \CaigouSearch\Core\Caigou($tableName);
// 创建索$tableName引库
$Caigou->createIndex();
// 导入数据 从数据库查询数据
$where = [
// ...
];
$result = Db::table('dev')->where($where)->select();
foreach ($result as $v) {
$id = $v['id'];// 主键
$title = $v['title']; // 需要索引的字段
$Caigou->indexer($id, $title);
}
// 循环导入完毕,批量写入文件
$Caigou->batchWrite();
构建索引
// 循环导入数据
// ...
// 数据批量写入完成,开始构建索引数据
$Caigou->buildIndex();
开始搜索
// 开始搜索,返回id集合
$tableName = 'test';//索引库名称
$Caigou = new \CaigouSearch\Core\Caigou($tableName);
$query = [
'query'=>'脚本语言',//搜索内容
'page'=>1,//第几页
'list_rows'=>10,//每页多少条
];
// 搜索结果 $res: id=>命中个数
$res = $Caigou->search($query);
// 构造查询sql语句
$ids = array_keys($res);
$ids = implode(',',$ids);
$sql = "select * from tablename where id in($ids)";
//...
删除索引库
// 删除test索引库
$tableName = 'test';//索引库名称
$Caigou = new \CaigouSearch\Core\Caigou($tableName);
$Caigou->delIndex();
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。