1

对于 ATG-Endeca 应用程序,我们有一个包含希腊语、英语混合数据的索引。索引的希腊语数据包含带重音的单词。如果搜索词没有重音,则它们与任何数据都不匹配(或者它们匹配是由于没有重音的字符与有重音的字符发生自动校正,这不是所需的功能)。Dgidx 标志 --diacritic 折叠配置不包括希腊字符的映射 ( https://docs.oracle.com/cd/E29584_01/webhelp/mdex_basicDev/src/rbdv_chars_mapping.html )。

是否可以通过 Endeca 端或核心或代码中的属性文件来扩展此 oob 功能?

4

1 回答 1

1

在您提供的文档中指出:

Dgidx 支持在索引期间将 Latin1、Latin extended-A 和 Windows CP1252 国际字符映射到它们的简单 ASCII 等价物。

这表明不支持希腊语,因为它不属于任何这些字符集(我相信希腊语是 Latin-7)。也就是说,您可以尝试在记录级别设置语言标志(因为您指出您的数据包括英语和希腊语),假设每种语言都有自己的记录,或者尝试使用dgidxanddgraph参数实现全球语言,但这会影响诸如不使用全球语言的记录或属性的词干。

dgidx --lang el
dgraph --lang el

尽管我不确定它是否会根据原始声明起作用。

Accessor或者,您可以使用扩展类的 custom 来实现变音符号删除的过程atg.repository.search.indexing.PropertyAccessorImpl(因为您提到了一个选项Nucleus,所以我假设您使用的是 ATG/Oracle Commerce)。使用它,您可以在索引中指定一个规范化的可搜索字段,该字段复制当前索引中的可搜索字段,但现在已删除所有变音符号。您在 then 中应用的相同逻辑Accessor需要作为预处理器应用于您的搜索词,以便您规范化输入以匹配索引值。最后使索引中的原始字段(带有重音字符)仅显示,规范化字段可搜索(但不显示它们)。

结果将匹配您的规范化文本,但缺点是您有重复的数据,因此您的索引会更大。小数据集不是大问题。OOTB 功能(如词干提取)与规范化数据集的行为方式也可能会受到影响。您必须使用希腊语和英语对各种场景进行一些测试,以查看精度和召回率是否受到不利影响。

于 2017-05-16T08:58:51.627 回答