在您提供的文档中指出:
Dgidx 支持在索引期间将 Latin1、Latin extended-A 和 Windows CP1252 国际字符映射到它们的简单 ASCII 等价物。
这表明不支持希腊语,因为它不属于任何这些字符集(我相信希腊语是 Latin-7)。也就是说,您可以尝试在记录级别设置语言标志(因为您指出您的数据包括英语和希腊语),假设每种语言都有自己的记录,或者尝试使用dgidx
anddgraph
参数实现全球语言,但这会影响诸如不使用全球语言的记录或属性的词干。
dgidx --lang el
dgraph --lang el
尽管我不确定它是否会根据原始声明起作用。
Accessor
或者,您可以使用扩展类的 custom 来实现变音符号删除的过程atg.repository.search.indexing.PropertyAccessorImpl
(因为您提到了一个选项Nucleus
,所以我假设您使用的是 ATG/Oracle Commerce)。使用它,您可以在索引中指定一个规范化的可搜索字段,该字段复制当前索引中的可搜索字段,但现在已删除所有变音符号。您在 then 中应用的相同逻辑Accessor
需要作为预处理器应用于您的搜索词,以便您规范化输入以匹配索引值。最后使索引中的原始字段(带有重音字符)仅显示,规范化字段可搜索(但不显示它们)。
结果将匹配您的规范化文本,但缺点是您有重复的数据,因此您的索引会更大。小数据集不是大问题。OOTB 功能(如词干提取)与规范化数据集的行为方式也可能会受到影响。您必须使用希腊语和英语对各种场景进行一些测试,以查看精度和召回率是否受到不利影响。