locomotivemtl / charcoal-search
Charcoal 搜索引擎工具和实用程序
Requires
- php: >=5.6.0 || >=7.0
- locomotivemtl/charcoal-app: ~0.2
- locomotivemtl/charcoal-core: ~0.4
- locomotivemtl/charcoal-object: ~0.2
- psr/log: ^1.0
Requires (Dev)
- cache/void-adapter: ^0.3
- phpunit/phpunit: ^5.7 || ^6.5
- satooshi/php-coveralls: ^2.0
- squizlabs/php_codesniffer: ^3.0
This package is auto-updated.
Last update: 2024-08-25 16:33:55 UTC
README
此模块包含创建基于 Charcoal 的快速搜索引擎所需的所有工具和实用程序。
它具有非常可定制的搜索引擎/搜索配置,允许在 SQL 数据库表、Charcoal 模型或进行自定义搜索中搜索。
目录
如何安装
安装 charcoal-search 的首选(也是唯一支持)方式是使用 composer
★ composer require locomotivemtl/charcoal-search
依赖项
示例用法
use \Charcoal\Search\SearchRunner; use \Foo\Bar\CustomObject; $searchRunner = new SearchRunner([ 'search_config' => [ 'ident' => 'my-custom-search', 'searches' => [ 'foo' => new CustomSearch([ 'logger' => $logger 'callback' => function($keyword) { } ]) ] ], 'model_factory' => $modelFactory, 'logger' => $logger ]); // The results are an array like `['foo'=>[...], 'bar'=>[...]]` $results = $searchRunner->search($keyword); // Access log $log = $searchRunner->searchLog(); // Differed access to results $results = $searchRunner->results();
构造函数选项
SearchRunner
使用单个参数实例化,该参数包含构造函数选项和类依赖项
搜索配置
搜索配置对象包含搜索标识以及要在对象上运行的各个搜索。
搜索类型
可用的搜索类型,这些类型在搜索配置的 searches 中定义
custom
table
(待办事项)model
(待办事项)
自定义搜索
custom
搜索定义了一个回调函数。这可以是可调用的(一个方法或具有 __invoke
方法的对象)或字符串(将尝试在 Search Runner 对象上调用匹配名称的函数)。
回调方法必须具有以下签名:array callback(string $keyword);
自定义选项
表搜索
table
搜索仍然是 待办事项。
模型搜索
model
搜索仍然是 待办事项。
搜索日志
每个搜索都自动记录到(SQL)存储中。
Charcoal-admin 集成
默认情况下,搜索日志对象包含在 charcoal-admin 中显示的完整元数据。请访问 [[your-site.com]]/admin/object/collection?obj-type=charcoal/search/search-log。
还有 2 个小部件也可用于可视化日志
charcoal/admin/widget/search/no-results-search
charcoal/admin/widget/search/top-search
开发
要安装开发环境
★ composer install --prefer-source
要运行脚本(phplint、phpcs 和 phpunit)
★ composer test
开发依赖项
phpunit/phpunit
squizlabs/php_codesniffer
satooshi/php-coveralls
持续集成
编码风格
所有 Charcoal 模块都遵循相同的编码风格,而 charcoal-search
也不例外。对于 PHP
- PSR-1
- PSR-2
- PSR-4,因此自动加载由 Composer 提供
- phpDocumentor
- 请参阅 phpcs.xml 文件以获取有关代码样式的所有详细信息。
可以使用
composer phpcs
执行编码风格验证/强制执行。还有一个使用composer phpcbf
的自动修复器。
作者
- Mathieu Ducharme mat@locomotive.ca
变更日志
- 未发布
MIT 许可证(MIT)
版权所有 © 2016 Locomotive inc。
请参阅 作者。
本软件及其相关文档文件(以下简称“软件”)的使用权在此免费授予任何人,允许其在不受限制的情况下处理软件,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或出售软件副本,并允许将软件提供给他人进行上述操作,但须遵守以下条件:
上述版权声明和本许可声明应包含在软件的任何副本或主要部分中。
软件按“原样”提供,不提供任何形式的保证,无论是明示的、暗示的,还是关于适销性、特定用途的适用性或非侵权性的保证。在任何情况下,作者或版权持有人不对任何索赔、损害或其他责任负责,无论是基于合同、侵权或其他行为,无论源于、涉及或与软件或软件的使用或其他操作有关。