经过一些试验和错误,我得到了这个工作。
正确的方法似乎是包含自定义词干更新 XML 文件的完全指定路径作为 Dgidx 的 --stemming-updates 参数的参数。
这是我的 endeca/apps/MyAppen/config/script/DataIngest.xml 的相关部分:
<dgidx id="Dgidx" host-id="ITLHost">
...
<args>
...
<arg>--stemming-updates</arg>
<arg>/full/path/to/endeca/apps/MyAppen/config/script/stemmingExtension.en.xml</arg>
</args>
</dgidx>
我发现 --stemming 更新和实际完全指定的路径需要在单独的 <arg> 标记中;如果您尝试将它们都放在由空格分隔的同一个 arg 标记中,则会发生错误。
可能存在一个特定文件夹,您可以在其中放置词干更新 XML 文件,而无需完全指定文件的路径,但我发现 endeca/MDEX/version/conf/stemming 和词干/conf 文件夹都不起作用为了这。当我尝试它时,我在 dgidx 日志中出现错误,例如:
ERROR 08/20/13 13:48:46.810 UTC (1377006526810) DGIDX {dgidx,baseline} InputFileStream can't open file "stemmingExtension.en.xml" for reading [err=`No such file or directory',errno=2]
我还发现 Endeca MDEX 引擎高级开发指南 6.2.2 版本中提供的示例 XML 中存在错误。该文档给出了 XML 文件的前两行:
<!DOCTYPE WORD_FORMS_COLLECTION SYSTEM "word_forms_collection_updates.dtd">
<WORD_FORMS_COLLECTION_UPDATES>
这是不正确的。尝试使用此格式的文件时,dgidx 日志中出现此错误:
FATAL 08/20/13 13:56:33.533 UTC (1377006993533) DGIDX {dgidx,baseline} Errors while parsing word forms updates from file "full/path/to/endeca/apps/MyAppen/config/script/stemmingExtension.en.xml": Errors while trying to parse config stream "full/path/to/endeca/apps/MyAppen/config/script/stemmingExtension.en.xml": Error at file full/path/to/endeca/apps/MPen/config/script/stemmingExtension.en.xml, line 2, column 31; Message: Root element different from DOCTYPE
解决此问题的方法是更改 XML 文件中的 DOCTYPE 行以匹配根标记,如下所示:
<!DOCTYPE WORD_FORMS_COLLECTION_UPDATES SYSTEM "word_forms_collection_updates.dtd">
<WORD_FORMS_COLLECTION_UPDATES>
我已经为这个(明显的)错误打开了一张 Oracle 支持的票。