nglasl/silverstripe-extensible-search

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

安装量: 29,378

依赖者: 5

建议者: 0

安全: 0

星标: 0

关注者: 2

分支: 13

开放问题: 3

类型:silverstripe-vendormodule

4.1.6 2021-08-25 07:46 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

在触发搜索时,将 ?analytics=false 添加到 URL 将绕过搜索分析。这对于调试非常棒。

存档

根据您的搜索流量,/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, [email protected]