moritz-sauer-13/silverstripe-extensible-search

此模块允许用户自定义和开发者扩展搜索页面实例,包括分析和建议。

安装: 3

依赖项: 0

建议者: 0

安全: 0

星级: 0

观察者: 0

分支: 14

类型:silverstripe-vendormodule

0.0.0 2024-09-18 13:19 UTC

This package is auto-updated.

Last update: 2024-09-18 13:21:06 UTC


README

当前版本是 4.1.4

此模块允许用户自定义和开发者扩展搜索页面实例,包括分析和建议。

要求

  • SilverStripe 3.1 → 4.0

入门指南

概述

可扩展搜索页面

这是自动创建的,允许根据搜索引擎(更多信息见下文)进行搜索配置。

page

搜索引擎

可扩展搜索页面设计为默认使用全文搜索,同时提供对自定义搜索引擎实现(如 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

analytics

当触发搜索时,在 URL 中附加 ?analytics=false 将绕过搜索分析。这对于调试非常有用。

存档

根据您的搜索流量,可能需要使用 /dev/tasks/ExtensibleSearchArchiveTask 对每个搜索页面的过去搜索分析进行存档。建议尽可能触发此操作。

archives

archive

搜索建议

这些与搜索分析(在这种情况下,它们会自动填充)配合使用最有效,可以用来显示您网站上受欢迎的搜索或搜索表单自动完成选项。它们默认启用,但也可以使用以下方法禁用

nglasl\extensible\ExtensibleSearchSuggestion:
  enable_suggestions: false

suggestions

要启用使用 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.ssPage_results.ss

SS4 更改

  • 自定义搜索引擎实现已更改,不再使用扩展(见上文)。

维护者联系方式

Nathan Glasl, nathan@symbiote.com.au