跳到内容 跳到侧边栏

Home » WPML 文档 » 相关项目 » WPML ElasticPress – 多语言搜索结果

WPML ElasticPress – 显示多语言搜索结果

WPML ElasticPress 让您能够显示使用 Elasticsearch 进行搜索时的相关语言特定结果。

主要功能

为每种语言生成索引,确保搜索结果和相关文章与您网站访问者的语言相匹配

将 ElasticPress 的搜索功能扩展到您的 WPML 驱动网站的所有语言

与 ElasticPress 同步仪表板无缝集成,实现特定语言的同步

同步并分析每种语言的内容,以实现准确的索引和可搜索性

本页内容:

所需插件和设置

首先安装并激活以下程序:

如果您是 WPML 新用户,请查看我们的入门指南

Elasticsearch 和 ElasticPress 简介

Elasticsearch 为您提供了一种快速准确的方式来管理您的可搜索内容。 这个开源工具对您的内容进行索引和分类,使您能够分析各种类型的内容,包括文本文档、数字和地理空间数据。

ElasticPress 将您的 WordPress 网站与 Elasticsearch 集成,以升级默认的 WordPress 搜索、查询和内容相关性功能。

如果您的网站包含大量信息,例如 WooCommerce 商店或社区网站,您可以使用 ElasticPress 来:

  • 创建几乎即时的搜索结果,同时消除对 WordPress 数据库的压力
  • 处理复杂的查询,包括全文和模糊搜索
  • 为内容添加权重,使查询搜索结果的重点集中在您选择的数据上
  • 分析大量数据以了解您网站上的客户行为和趋势

一旦您安装 ElasticPress 插件并连接到 Elasticsearch 服务器,插件就会开始索引您网站的数据。 这意味着它将您网站的所有内容(文章、页面、产品等)组织成 Elasticsearch 可以快速处理的格式。

ElasticPress 将其功能捆绑到功能中,您可以访问 ElasticPress → 功能

ElasticPress 可让您启用以下功能

使用 ElasticPress 同步内容

当您创建、更新或删除内容时,ElasticPress 会自动同步内容,确保您的搜索索引始终保持最新。

ElasticPress → 同步中,您还可以访问同步设置,其中包含两种索引模式。这些模式允许您将 WordPress 网站的当前内容索引到 Elasticsearch,或删除 Elasticsearch 索引中的现有数据,并使用 WordPress 网站的当前内容从头创建新索引。

WPML ElasticPress 的工作原理

WPML ElasticPress 在您的 WPML 和 ElasticPress 驱动的 WordPress 网站上启用多语言搜索功能。它以原始语言分析内容,确保准确的索引,并以用户选择的语言显示相关内容。

WPML ElasticPress 通过生成独特的语言特定索引来实现这一点:

  1. 相关文档:每个索引包括所有设置为可翻译的文章类型的特定语言翻译。对于设置为显示可用翻译或回退到默认语言的文章类型,索引包括该语言的翻译以及默认语言的文章。 对于不可翻译的文章,每个语言索引都包含所有项目的副本。
  2. 特定语言文档分析:对语言索引中的所有文档进行分析,并使用该语言的工具、停止词和词干进行同步。 这包括默认语言文章的副本。
  3. 搜索结果池:每个语言索引为前端搜索请求、相关文章列表等提供潜在结果池。

支持的 ElasticPress 功能

目前,WPML ElasticPress 支持以下 ElasticPress 功能:

  • 用于前端搜索的文章搜索
  • 使用 ElasticPress 提供的小工具的相关文章
  • 用于后端搜索的分类评论用户
  • 用于搜索附加到文章和页面的文本文件的文档功能

WPML ElasticPress 入门

由于 WPML ElasticPress 为每种语言生成索引,我们建议您在安装 WPML ElasticPress 后和/或从 WPML ElasticPress 1.0 版本更新到 2.0 版本后重新索引您的文章。
请注意,如果您的网站很大,这个过程可能需要几个小时

您可以通过 WordPress 管理界面或使用以下命令来执行此操作:

wp wpml_elasticpress sync --setup --post-type=post

使用 WPML ElasticPress 同步和索引内容

WPML ElasticPress 直接与 ElasticPress → 同步仪表板集成。插件不是运行单个同步过程,而是为您的多语言网站的每种语言触发多个同步。

WPML ElasticPress 直接与 ElasticPress 同步集成

每当您创建、修改或删除文章时,WPML ElasticPress 会自动保持相关内容的同步。它会根据修改内容的语言或文章类型的翻译设置更新相关索引。

使用 WP-CLI 进行索引

如果您有一个包含大量内容需要索引的大型多语言网站,您可能更喜欢使用命令行索引。WPML ElasticPress 包含其自己的 CLI 命令 wp wpml_elasticpress,它扩展了现有的 wp elasticpress 命令。 它增加了一个--post-lang 选项,用于指定要同步的语言。 您可以列出用逗号分隔的多种语言。 例如,wp wpml_elasticpress sync –post-lang=en,es 将只同步英语和西班牙语内容。

有用的命令包括

  • wp wpml_elasticpress sync –setup:删除所有现有索引,并重新索引所有内容。
  • wp wpml_elasticpress sync --per-page=200:每批同步 200 个项目,而不是 ElasticPress 设置的默认每批 350 个项目。
  • wp wpml_elasticpress sync –post-type=post –post-lang=en,pt-pt:仅索引特定语言的文章。 这里指的是英语和葡萄牙语。 我们在下面详细解释了如何使用此命令

仅索引特定语言的文章

WPML ElasticPress 粘合插件还允许您仅索引特定语言的文章。 要执行此操作:

  1. 使用 wp wpml_elasticpress sync --setup --post-type=post --post-lang=en 命令索引给定语言(在本例中为英语)的文章并删除所有现有索引。
  2. 如果您现在检查您网站的前端,您会看到英语网站上的搜索结果中只有英语文章。 如果切换语言,搜索结果应该是空的。

如果您想为其他语言编制索引,请重复步骤 2。 请确保跳过 –setup 参数,否则您将删除已经索引的文章。

例如,您可以这样做 wp wpml_elasticpress sync --post-type=post --post-lang=fr

已知问题

这款插件和WPML之间没有未解决的兼容性问题。 搜索所有已知问题

获得我们的支持帮助

如果您需要在多语言网站上使用 ElasticPress 的帮助,请访问 WPML 的支持论坛

已更新
23 10 月, 2025