moritz-sauer-13 / silverstripe-extensible-search
此模块允许用户自定义和开发者扩展搜索页面实例,包括分析和建议。
0.0.0
2024-09-18 13:19 UTC
Requires
This package is auto-updated.
Last update: 2024-09-18 13:21:06 UTC
README
当前版本是 4.1.4
此模块允许用户自定义和开发者扩展搜索页面实例,包括分析和建议。
要求
- SilverStripe 3.1 → 4.0
入门指南
- 将模块放置在您的根项目目录下。
- 配置搜索引擎和搜索表单 YAML。
/dev/build
- 配置可扩展搜索页面。
概述
可扩展搜索页面
这是自动创建的,允许根据搜索引擎(更多信息见下文)进行搜索配置。
搜索引擎
可扩展搜索页面设计为默认使用全文搜索,同时提供对自定义搜索引擎实现(如 Elasticsearch)的支持。
全文
SilverStripe\ORM\Search\FulltextSearchable: searchable_classes: - 'SilverStripe\CMS\Model\SiteTree' SilverStripe\CMS\Model\SiteTree: create_table_options: MySQLDatabase: 'ENGINE=MyISAM' extensions: - "SilverStripe\\ORM\\Search\\FulltextSearchable('Title', 'MenuTitle', 'Content', 'MetaDescription')"
在考虑要使用的搜索引擎时,全文搜索有一些重要的限制。此配置也可以应用于 File
,但遗憾的是,它不支持进一步自定义。
自定义搜索引擎
以下是一个示例配置,其中 ElasticSearch
扩展了抽象的 CustomSearchEngine
类
nglasl\extensible\ExtensibleSearchPage: custom_search_engines: nglasl\extensible\ElasticSearch: 'Elastic'
搜索表单
PageController: extensions: - 'nglasl\extensible\ExtensibleSearchExtension'
使用此方法,显示用户与之交互的搜索表单(从您的模板中)
$SearchForm
搜索分析
这些对于帮助确定您网站上受欢迎的内容,或者内容是否难以用户找到非常重要。它们默认启用,但也可以使用以下方法禁用
nglasl\extensible\ExtensibleSearch: enable_analytics: false
当触发搜索时,在 URL 中附加 ?analytics=false
将绕过搜索分析。这对于调试非常有用。
存档
根据您的搜索流量,可能需要使用 /dev/tasks/ExtensibleSearchArchiveTask
对每个搜索页面的过去搜索分析进行存档。建议尽可能触发此操作。
搜索建议
这些与搜索分析(在这种情况下,它们会自动填充)配合使用最有效,可以用来显示您网站上受欢迎的搜索或搜索表单自动完成选项。它们默认启用,但也可以使用以下方法禁用
nglasl\extensible\ExtensibleSearchSuggestion: enable_suggestions: false
要启用使用 approved 搜索建议的自动完成。
Requirements::javascript('nglasl/silverstripe-extensible-search: client/javascript/extensible-search-suggestions.js'); // OPTIONAL. Requirements::css('jquery-ui.min.css'); Requirements::javascript('jquery-ui.min.js');
智能模板
可以为您的搜索结果定义特定于自定义搜索引擎的模板。以下只是两个示例
ElasticSearch_results.ss
或 Page_results.ss
SS4 更改
- 自定义搜索引擎实现已更改,不再使用扩展(见上文)。
维护者联系方式
Nathan Glasl, nathan@symbiote.com.au