coldtrick / opensearch
Elgg 的 OpenSearch 实现
Requires
Conflicts
- elgg/elgg: <6.0
This package is auto-updated.
Last update: 2024-09-12 11:43:26 UTC
README
Elgg 的 OpenSearch 实现
需求
需要一个正常工作的 OpenSearch 服务器。同时,你的 Elgg 安装中必须启用分钟 cron。分钟 cron 用于将所有必要的更改(创建/更新/删除)更新到索引中。
当前支持的 OpenSearch 版本为:2.5.x
配置
设置
插件设置允许你配置以下内容
- 主机:需要配置 1 或多个主机(完整 URL + 可选端口号)。你可以提供多个主机,用逗号分隔。
- 索引:用于索引 Elgg 数据和搜索查询的索引名称
- 搜索别名(可选):用于搜索查询的别名名称,这允许轻松地对多个索引进行搜索
索引管理
索引管理页面(在管理侧边栏的“管理 -> OpenSearch -> 索引”下找到)允许你在 OpenSearch 服务器上所有可用的索引上执行各种操作。以下操作被支持
- 创建:如果插件设置页面中配置的索引尚未可用,则可以执行此操作。它将创建用于搜索的默认索引配置。
- 别名:向索引添加/删除配置的别名(这允许跨多个索引进行搜索)
- 删除:这将从服务器中删除索引(此操作不可撤销)
管理
日志文件
基于你的 Elgg 网站的日志级别,OpenSearch PHP 客户端库也将进行日志记录。日志将显示在所有其他 Elgg 日志相同的地点。
统计信息
你可以在“管理 -> OpenSearch -> 统计”页面上找到各种统计信息。Elgg 统计报告应该包含在索引中的 Elgg 数据库中的实体数量。它还报告了需要添加/更新/删除的实体数量以及目前正等待分钟 cron 处理的实体。
还显示了来自 OpenSearch 集群的某些统计信息,如状态和版本信息。
你还可以在此页面上找到所有可用索引的统计信息。
CLI 命令
CLI 命令可用于与默认的 elgg-cli
命令一起使用
opensearch:rebuild
此命令将使用新的配置和/或映射重新构建当前的 OpenSearch 索引。仅在存在活动索引时才有效。仅在更改了索引配置和/或映射时才使用此命令。
opensearch:sync
此命令将同步所有挂起的实体到 OpenSearch 索引。这在数据库重新索引过程中非常有用,因为需要索引大量实体。在这种情况下使用正常的 cron 任务可能需要很长时间。
建议
使用 Search Advanced 插件添加额外的搜索功能。如果两者都启用,此插件提供了一个菜单来排序/排序结果。
开发者
插件事件
'boostable_types', 'opensearch'
返回一个数组,其中包含用于在 OpenSearch 中配置提升的类型.subtype。
格式
[
'type.subtype',
]
默认为 OpenSearch 注册的可搜索类型/subtype。
'config:index', 'opensearch'
返回一个数组,包含 OpenSearch 将使用的索引配置。
'config:mapping', 'opensearch'
返回一个映射配置数组,该数组将用于OpenSearch。
'export:counters', 'opensearch'
返回一个计数器数组,这些计数器将被导出到OpenSearch。
格式
[
'counter_name' => counter_value
]
参数包含
entity
:要导出的ElggEntity
'export:metadata_names', 'opensearch'
返回一个元数据名称数组,这些元数据将被导出到OpenSearch。
参数包含
entity
:要导出的ElggEntity
'export:relationship_names', 'opensearch'
返回一个关系名称数组,这些关系将被导出到OpenSearch。
参数包含
entity
:要导出的ElggEntity
'index_entity_type_subtypes', 'opensearch'
返回一个允许被OpenSearch索引的类型/子类型数组。
格式
[ 'type' => ['subtype1', 'subtype2'], ]
默认为Elgg中所有已注册的可搜索类型/子类型。
'index:entity:prevent', 'opensearch'
如果提供的实体不应添加到OpenSearch索引,则返回true
参数包含
entity
:即将被索引的ElggEntity
默认:false
'index:entity:type', 'opensearch'
返回一个字符串,指定实体应被索引的类型/子类型。这在搜索时的类型过滤中使用(例如,所有博客)
参数包含
entity
:即将被索引的ElggEntity
default
:此实体的默认类型/子类型
默认:{entity_type}.{entity_subtype}
(例如:object.blog
)
'params', 'opensearch'
返回一个参数数组,这些参数将被用于初始化\ColdTrick\OpenSearch\Client
OpenSearch客户端。
'search', 'type_subtype_pairs'
返回一个类型/子类型数组,这些类型/子类型允许被OpenSearch搜索。
格式
[ 'type' => ['subtype1', 'subtype2'], ]
默认为Elgg中所有已注册的可搜索类型/子类型。
'search_params', 'opensearch'
返回一个\ColdTrick\OpenSearch\Di\SearchService
,用于搜索。这允许你在opensearch中更改搜索参数。
参数包含
search_params
:由Elgg搜索提供的搜索参数数组
'to:entity:before', 'opensearch'
在将OpenSearch命中数据转换为ElggEntity
之前更改它
参数包含
hit
:来自OpenSearch的结果search_params
:由Elgg搜索提供的搜索参数数组
'to:entity', 'opensearch'
根据来自OpenSearch的搜索结果数据返回一个ElggEntity
。
参数包含
hit
:来自OpenSearch的结果search_params
:由Elgg搜索提供的搜索参数数组
传递给elgg_search
的参数
字段增强
在传递给elgg_search
的参数中,您可以添加一个配置来控制OpenSearch中的字段增强。将键field_boosting
添加到数组中,该数组包含字段名和该字段的增强。
示例
[ 'field_boosting' => [ 'title' => 2, // title is worth double 'description' => 0.5 // description is worth half ], ]