PHP code example of seffeng / laravel-xunsearch
1. Go to this page and download the library: Download seffeng/laravel-xunsearch library . Choose the download type require .
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
seffeng / laravel-xunsearch example snippets
# 1、将以下代码段添加到 /bootstrap/app.php 文件中的 Providers 部分
$app->register(Seffeng\LaravelXunsearch\XunsearchServiceProvider::class);
# 2、复制扩展包内 config/xunsearch.php 到项目 config 目录,修改项目字段, 在 .env 文件中添加配置
/**
* 参考 tests/XunsearchTest.php
*/
use PHPUnit\Framework\TestCase;
use Seffeng\LaravelXunsearch\Facades\Xunsearch;
class XunsearchTest extends TestCase
{
/**
*
* @author zxf
* @date 2020年4月17日
* @throws \Exception
*/
public function testSearch()
{
try {
// 添加文档
$data = ['id' => 1, 'name' => '李白']; // 或二维数组 [['id' => 1, 'name' => '李白'], ['id' => 2, 'name' => '杜甫']]
Xunsearch::addIndex($data);
// 或非默认项目库
// 注意:使用 setDatabase($db) 后,再使用 Xunsearch::{$method} 也为新设置的$db
Xunsearch::setDatabase('author')->addIndex($data);
// 修改文档
$data = ['id' => 1, 'name' => '李白,字太白'];
Xunsearch::updateIndex($data);
// 删除文档
Xunsearch::delIndex([1, 2]);
// 清空文档
Xunsearch::cleanIndex();
// 平滑重建索引
Xunsearch::beginRebuild();
Xunsearch::addIndex($data);
Xunsearch::endRebuild();
// 搜索
// Xunsearch::setFuzzy(true|false); // 是否模糊搜索
// Xunsearch::setLimit(int 10); // 每页数量
// Xunsearch::setOffset(int 0); // 偏移量,与 setPage 不同时使用
// Xunsearch::setPage(int 1); // 当前页,改变偏移量,与 setOffset 不同时使用
$result = Xunsearch::search('李白');
/**
Array
(
[time] => 0.003633975982666 // 搜索时长[s]
[data] => Array // 结果
(
[0] => XSDocument Object
(
[_data:XSDocument:private] => Array
(
[id] => 1
[name] => 李白,字太白
[255] =>
)
[_terms:XSDocument:private] =>
[_texts:XSDocument:private] =>
[_charset:XSDocument:private] => UTF-8
[_meta:XSDocument:private] => Array
(
[docid] => 1
[rank] => 1
[ccount] => 0
[percent] => 100
[weight] => 0.40546509623528
)
)
)
[page] => Array
(
[totalCount] => 1 // 结果数量
[pageCount] => 1 // 总页数
[currentPage] => 1 // 当前页
[perPage] => 10 // 每页数量
)
)
*/
} catch (\Exception $e) {
throw $e;
}
}
}
├───config
│ xunsearch.php
├───src
│ │ Xunsearch.php
│ │ XunsearchServiceProvider.php
| ├───Exceptions
| | XunsearchException.php
│ └───Facades
│ Xunsearch.php