labor-digital/typo3-search-and-index

为TYPO3记录提供快速、分面的搜索引擎,如需可创建完整的XML站点地图

安装: 950

依赖项: 0

建议者: 0

安全性: 0

星星: 0

观察者: 2

分支: 0

开放问题: 0

类型:typo3-cms-extension

10.3.1 2023-04-24 13:21 UTC

This package is auto-updated.

Last update: 2024-09-24 16:13:04 UTC


README

此包提供了一种强大、可分面、语言和领域感知的基于PHP的搜索实现。搜索使用智能SQL查询在毫秒内执行复杂、模糊搜索。为了提供高性能,搜索在TYPO3安装中所有内容的索引上执行。搜索可以轻松处理自定义记录类型,使用基于类的、可扩展的索引算法。已实现页面索引的索引任务。

基于索引,您还可以生成完整的XML站点地图。

需求

安装

使用composer安装此包

composer require labor-digital/typo3-search-and-index

之后,您可以在TYPO3安装的扩展管理器中激活此扩展

文档

您可以在T3BA示例存储库的T3SAI分支中找到已记录的实现。

运行索引器

要运行索引器,可以使用"t3sai:indexer"命令行命令,或者创建一个新的调度任务使用"Search and Index - Indexer"类。您也可以通过在代码中使用" LaborDigital\T3sai\Core\Indexer\Indexer"类来运行索引器。

提供的路由

  • GET /t3sai/sitemap.xml 提供基于请求主机名的站点地图(基于搜索索引生成)。
  • POST /t3sai/autocomplete 提供生成Ajax自动完成功能的端点。只需将您的输入字符串作为"search"(表单数据)POST,即可接收自动完成结果的JSON列表。您还可以发送一个域名标识符作为"domain"以缩小自动完成结果。

T3FA集成

如果您正在使用TYPO3前端API扩展,则提供的路由将自动禁用!

相反,您可以在运行搜索、部署sitemap.xml或解析自动完成结果时利用T3FA提供的API功能。

搜索包

搜索包包括两个资源,可以用于通过API完全访问搜索索引。

注册包如下

<?php

namespace Vendor\Extension\Configuration\ExtConfig\Site\Main;

use LaborDigital\T3fa\ExtConfigHandler\Api\BundleCollector;
use LaborDigital\T3fa\ExtConfigHandler\Api\ConfigureApiInterface;
use LaborDigital\T3sai\Api\Bundle\SearchBundle;

class Api implements ConfigureApiInterface
{
    public static function registerBundles(BundleCollector $collector): void
    {
        $collector->register(SearchBundle::class);
    }
}
GET /api/resources/t3sai_search

此路由可用于检索提供的输入字符串的搜索结果。您可以使用默认的"page"参数进行分页。

此外,还有以下参数

  • input (字符串) 必需:要找到结果的urlencoded输入字符串
  • L (整数|字符串):可以是两个字符的iso语言代码或sys语言uid,以找到结果。如果省略,则使用当前前端语言。
  • tags (字符串):一个逗号分隔的标签列表,其中必须可找到结果
  • domain (字符串):要查找结果的特定搜索域的标识符
  • site (字符串):默认情况下,将使用当前TYPO3站点进行搜索。此选项可用于针对特定站点。
  • maxTagItems (整数):每个标签应返回的条目限制
  • contentMatchLength (整数):定义"contentMatch"字段在结果中可以包含的字符数
  • with (字符串):解析结果时的附加标志的逗号分隔列表。
    • count:如果提供,将返回结果中每个标签的项目计数的列表,在“meta”数组中。
    • tags:如果提供可用的标签列表及其翻译,将返回这些信息。
GET /api/resources/t3sai_autocomplete

此路由可用于检索针对提供的输入字符串的自动完成建议。您可以使用默认的“page”参数进行结果分页。

如果输入的最后一个字符是空格(" "),则将返回下一个单词的建议;如果最后一个字符是普通字符,则将返回完成当前单词的建议。

此外,还有以下参数

  • input (字符串) 必需:要找到结果的urlencoded输入字符串
  • L (整数|字符串):可以是两个字符的iso语言代码或sys语言uid,以找到结果。如果省略,则使用当前前端语言。
  • domain (字符串):要查找结果的特定搜索域的标识符
  • site (字符串):默认情况下,将使用当前TYPO3站点进行搜索。此选项可用于针对特定站点。

站点地图组件

站点地图组件提供 /api/sitemap.xml 路由。

注册包如下

<?php

namespace Vendor\Extension\Configuration\ExtConfig\Site\Main;

use LaborDigital\T3fa\ExtConfigHandler\Api\BundleCollector;
use LaborDigital\T3fa\ExtConfigHandler\Api\ConfigureApiInterface;
use LaborDigital\T3sai\Api\Bundle\SitemapBundle;

class Api implements ConfigureApiInterface
{
    public static function registerBundles(BundleCollector $collector): void
    {
        $collector->register(SitemapBundle::class);
    }
}
GET /api/sitemap.xml

返回基于请求主机的XML站点地图(基于搜索索引生成)。

明信片软件

您可以使用此软件包,但如果它进入您的生产环境,我们非常希望您能从您的家乡寄给我们一张明信片,注明您正在使用我们哪个软件包。

我们的地址是:LABOR.digital - Fischtorplatz 21 - 55116 Mainz, Germany

我们将公布收到的所有明信片在我们的公司网站上