adrexia / staticsearch
静态搜索为静态发布的silverstripe网站提供了一种替代的搜索选项
Requires
- silverstripe/cms: ~3.1
- silverstripe/framework: ~3.1
- silverstripe/staticpublishqueue: *@stable
This package is auto-updated.
Last update: 2024-09-06 15:19:09 UTC
README
这是一个为在SilverStripe中使用Static Publish Queue模块而设计的Tipue搜索的实现。此实现使用Tipue搜索的静态模式。
此模块与以下内容兼容
- 子站点(可选)
- 静态发布队列(必需)
方法
- 扩展SiteTree以添加生成可搜索字段数据的方法。如果需要,可以在页面级别覆盖这些方法。
- 构建任务以为每个子站点生成json索引文件(存储在缓存目录中)。
- 基本的Tipue JavaScript搜索实现,在静态模式下。
- 搜索页面控制器以存储搜索结果(由JavaScript搜索填充)
JSON格式
{
"title": "page title",
"text":"Prepped page content",
"tags":"Taxonomy or meta description",
"loc":"Page URL"
}
设置
获取代码
将此添加到您的composer.json文件中
"adrexia/staticsearch": "dev-master"
更新您的仓库
composer update
集成
将搜索表单添加到您的页面
<% include StaticSearchForm %>
在您的页面中包含StaticSearchRequirements在
中。<% include StaticSearchRequirements %>
如果您喜欢,将StaticSearchRequirements.ss复制到您的主题中,并用任何自定义文件覆盖。这些文件仅用于搜索页面本身。如果遇到任何搜索本身的问题,请阅读Tipue文档。它在设置方面可能有点特殊。
http://www.tipue.com/search/docs/
如果您想使搜索页面符合您的网站设计,请将SearchPage.ss复制到您的主题文件夹。在staticsearch/css/tipuesearch.css中提供了基本CSS。您可以直接使用它,也可以用您自己的CSS替换。
结果定制
生成json文件数据的生成方法位于staticsearch/code/extensions/StaticSearchSiteTreeExtension.php中。您可以在页面级别(例如在Page.php中)覆盖这些方法。您可能希望显示较小范围的数据,或者您可能想将数据对象作为页面上的内容进行索引。
这些方法可以在页面级别覆盖。建议如果您正在处理更大的静态发布网站,请使用标记系统(参见getSearchableTags())作为主要搜索机制,并将内容块限制为简单的摘要。
生成结果
运行BuildStaticSearchIndexTask以生成搜索_index.json文件(注意,静态发布队列任务必须至少运行一次以生成缓存本身)。
dev/tasks/BuildStaticSearchIndexTask
您可能希望将此任务设置为在您的实时网站上每天运行一次,以更新搜索索引。