stillat / statamic-search-report
Requires
- php: ^8.0
- statamic/cms: ^4.0 || ^5
- stillat/statamic-template-resolver: ^1.1
README
Statamic 搜索报告是一个简单的控制面板和实用程序插件,允许您记录网站上的搜索操作,并在 Statamic 控制面板中查看。
安装方法
您可以通过在项目根目录下运行以下命令来安装 Statamic 搜索报告:
composer require stillat/statamic-search-report
由于 Statamic 搜索报告包含用于控制面板报告的预构建资源,如果它们未自动为您发布,您需要发布前端资源。这可以通过运行以下命令完成:
php artisan vendor:publish --tag=statamic-search-report
此外,使用 Statamic 搜索报告还需要一些配置和设置。在继续之前,请确保发布配置文件。
php artisan vendor:publish --tag=statamic-search-report-config
设置
Statamic 搜索报告将搜索日志存储在数据库中,即使您的网站其余部分使用平面文件。如果您不想设置大型数据库服务器,您也可以使用 SQLite。有关如何配置数据库连接的更多信息,请参阅 Laravel 的数据库:入门页面。
无论您计划使用哪种数据库引擎,您都需要首先通过运行以下命令发布 Statamic 搜索报告的迁移:
注意:如果您想更改数据库表名,请在运行以下命令之前更新
search_report.database.table
配置选项。
php artisan search-report:search-term-logs-table
在您的网站 database/migrations
文件夹内将为您创建一个新文件。
默认情况下,Statamic 搜索报告将使用您的网站 database.default
数据库连接。您可以通过更新 search_report.database.connection
配置选项来更改此设置。一旦您为 Statamic 搜索报告设置了数据库并进行了配置,您可以通过运行以下命令创建新的数据库表:
php artisan migrate
模板化
由于 Statamic 的搜索功能不会触发任何事件,您需要更新您网站上的搜索结果页面以记录搜索。这可以通过在现有模板中插入 {{ log_search /}}
Antlers 标签来完成。
{{ search:results }} {{ log_search /}} {{ /search:results }}
这将指示 Statamic 搜索报告在向网站访客发送响应后创建一个新的日志条目。log_search
标签将尝试自动查找其所需的所有信息,但这种行为也可以更改。
当使用 log_search
标签时,以下参数是可用的:
{{ log_search term="the searched term" index="the-search-index" site="default" result_count="0" page="1" /}}
注意:如果配置错误或工作不正确,
log_search
标签将记录所有异常到您网站默认日志。它 不会 在浏览器中显示异常。
记录的内容
Statamic 搜索报告不会记录以下内容之外的信息:
id
:搜索日志本身的唯一标识符。这与用户无关,也不提供唯一标识单个用户的方法create_at
:特定搜索词组合首次搜索的日期和时间updated_at
:特定搜索词组合最后搜索的日期和时间index
:用于执行搜索的 Statamic 搜索索引term
:用户的搜索词。这 可能 包括个人数据,如果用户在您的网站上执行搜索时输入了个人数据site
:搜索在Statamic站点内进行的Statamic站点
Statamic搜索报告不会存储用户搜索的每个单独发生,仅维护执行搜索词的汇总计数。为每个唯一的site
、index
和term
组合创建一个搜索日志。
搜索报告
一旦访客在您的网站上进行了几次搜索,您可以通过转到“工具 > 搜索报告”在Statamic控制面板中查看它们。
搜索报告提供了一些字段,帮助您理解用户的搜索
- 索引:用于执行搜索的Statamic搜索索引
- 搜索词:访客提供的搜索词
- 频率:唯一索引、搜索词和站点组合被搜索的次数
- 后续页面频率:在显示分页结果时,导航到搜索结果第一页之后的次数
- 结果计数:搜索词在一段时间内返回的总结果数
- 最后搜索时间:搜索词最后被搜索的日期和时间
存储认证用户的搜索
默认情况下,Statamic搜索报告不会记录您网站上认证用户进行的搜索。这可以通过修改以下配置选项来更改,该选项位于config/search_report.php
配置文件中
<?php return [ // ... /* |-------------------------------------------------------------------------- | Authenticated User Search Logging Configuration |-------------------------------------------------------------------------- | | The 'Ignore Authenticated Users' option configures the logging of search | queries made by signed-in users. When enabled, it prevents the storage | of search activities from authenticated accounts. This can be useful | when the only authenticated users are administrators or editors. | */ 'ignore_authenticated_users' => true, // ... ];
清除搜索日志
您可以通过从项目根目录运行以下命令来清除搜索日志中的所有条目
php artisan search-report:clear-search-term-logs
注意:此search-report:clear-search-term-logs
命令会截断配置的搜索词日志表。根据您的数据库服务器配置,应用程序用户可能没有权限执行此操作。在这种情况下,您应考虑其他删除存储搜索日志的选项。
许可证
Statamic搜索报告是免费软件,在MIT许可证下发布。