2017-05-16 20 views
0

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

是否有可能扩展此oob功能思想属性文件在Endeca方或nucleous或代码?

回答

1

在你提供给它的文档指出:

Dgidx支持映射Latin1的,拉丁语扩展A,和Windows CP1252索引中国际字符其简单的ASCII码值。

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

dgidx --lang el 
dgraph --lang el 

虽然我不确定它会根据原始声明工作。

或者,您也可以实现使用自定义Accessor,它扩展了atg.repository.search.indexing.PropertyAccessorImpl类区分符号去除的过程(因为你是指Nucleus的选择,所以我假设你正在使用ATG /甲骨文商务部)。使用这个,你可以在索引中指定一个规范化的可搜索字段,它复制当前索引中的可搜索字段,但现在删除了所有的变音符号。您在Accessor中应用的相同逻辑则需要作为搜索条件中的预处理器应用,以便您对输入进行规范化以匹配索引值。最后让索引中的原始字段(带有强调字符)仅显示,并且标准化字段可搜索(但不显示它们)。

结果将与您的标准化文本匹配,但缺点是您的数据已经重复,因此您的索引将更大。小数据集不是一个大问题。 OOTB功能(如词干)如何与标准化数据集一起运行也可能会产生影响。你必须用希腊语和英语进行一些测试,看看精确度和召回率是否受到不利影响。

+0

嗨Radimpe。感谢您的回答。希腊语oob是OLT,但我们需要键入和通配符,所以我们使用Latin-1。 –

+1

在这种情况下,将索引中的输入数据标准化,然后在将其传递给提前输入之前将其正常化,这可能会产生积极的结果。 – radimpe

+0

在提前输入的formhandler中,我们使用了任何变音符号,并向ProductCatalogIndexingAdmin添加了一项服务,以便为Endeca数据执行相同的操作。奇迹般有效。 – bated