智能翻译搜索允许使用非英语搜索词解析为英文内容。 要设置AEM以进行智能翻译搜索,必须安装和配置Apache Oak Search Machine Translation OSGi包,以及包含翻译规则的相关免费开源Apache Joshua语言包。
必须在需要智能翻译的每个AEM实例上设置智能翻译搜索。
下载并安装Oak搜索机翻译OSGi包
/system/console/bundles
.下载和更新Apache Joshua语言包
下载并解压缩所需内容 Apache Joshua语言包.
编辑 joshua.config
文件并注释掉以下2行开头:
feature-function = LanguageModel ...
确定并记录语言包的模型文件夹的大小,因为这会影响AEM需要的额外堆空间量。
移动未压缩的Apache Joshua语言包文件夹(使用 joshua.config
编辑)
.../crx-quickstart/opt/<source_language-target_language>
例如:
.../crx-quickstart/opt/es-en
使用更新的堆内存分配重新启动AEM
停止AEM
确定AEM所需的新堆大小
AEM预语言缺堆大小+模型目录的大小四舍五入到最接近的2GB
例如:如果预语言包安装AEM需要运行8GB的堆,并且语言包的模型文件夹未压缩为3.8GB,则新堆大小为:
原始 8GB
+( 3.75GB
四舍五入到最接近的值 2GB
,其中 4GB
) 12GB
验证计算机是否具有此数量的额外可用内存。
更新AEM启动脚本以根据新堆大小进行调整
java -Xmx12g -jar cq-author-p4502.jar
通过增加堆大小重新启动AEM。
语言包所需的堆空间可能会增大,尤其是当使用多个语言包时。
总是确保 实例具有足够的内存 以适应已分配堆空间的增加。
的 必须始终计算基本堆以支持可接受的性能,而不使用任何语言包 已安装。
通过Apache Jackrabbit Oak机器翻译全文查询术语提供程序OSGi配置注册语言包
对于每个语言包, 创建新的Apache Jackrabbit Oak机器翻译全文查询术语提供程序OSGi配置 通过AEM Web Console的配置管理器。
Joshua Config Path
是joshua.config文件的绝对路径。 AEM进程必须能够读取语言包文件夹中的所有文件。
Node types
是候选节点类型,其全文搜索将使用此语言包进行翻译。
Minimum score
是要使用的已翻译术语的最小置信度分数。
0.9
还翻译成“人”这个英文单词,并且有置信度 0.2
. 将最小分数调整为 0.3
,将“hombre”保留为“man”翻译,但将“hombre”改为“human”翻译,作为 0.2
小于 0.3
.对资产执行全文搜索
更新语言包
Apache Joshua语言包由Apache Joshua项目完整维护,其更新或更正由Apache Joshua项目自行决定。
如果语言包已更新,则要在AEM中安装更新,则必须执行上述步骤2 - 4,并根据需要调整堆大小。
如果AEM不需要重新启动,则必须重新保存与更新的语言包相关的Apache Jackrabbit Oak Machien翻译全文查询术语提供程序OSGi配置,以便AEM处理更新的文件。
为 AEM智能标记 受AEM智能翻译、AEM的影响 /oak :index /damAssetLucene
必须更新索引,以将预测的标记(“智能标记”的系统名称)标记为资产聚合Lucene索引的一部分。
在 /oak:index/damAssetLucene/indexRules/dam:Asset/properties/predicatedTags
,请确保配置如下所示:
<damAssetLucene jcr:primaryType="oak:QueryIndexDefinition">
<indexRules jcr:primaryType="nt:unstructured">
<dam:Asset jcr:primaryType="nt:unstructured">
<properties jcr:primaryType="nt:unstructured">
...
<predictedTags
jcr:primaryType="nt:unstructured"
isRegexp="{Boolean}true"
name="jcr:content/metadata/predictedTags/*/name"
useInSpellheck="{Boolean}true"
useInSuggest="{Boolean}true"
analyzed="{Boolean}true"
nodeScopeIndex="{Boolean}true"/>