Oracle 文本中的西班牙语词干
Spanish stemming in Oracle Text
我正在尝试创建 Oracle Text 索引以对数据库中某些西班牙语文本列进行 FTS 查询。
根据 Oracle 文档,我需要创建一个 LEXER 和一个 WORDLIST 来启用词干查询和模糊查询:
exec ctxsys.ctx_ddl.create_preference ('cust_lexer','BASIC_LEXER');
exec ctxsys.ctx_ddl.set_attribute ('cust_lexer','base_letter','YES');
exec ctxsys.ctx_ddl.set_attribute ('cust_lexer','index_stems','SPANISH');
exec ctxsys.ctx_ddl.create_preference('cust_wordlist','BASIC_WORDLIST');
exec ctxsys.ctx_ddl.set_attribute('cust_wordlist','stemmer','AUTO');
exec ctxsys.ctx_ddl.set_attribute('cust_wordlist','fuzzy_match','AUTO');
然后使用这些首选项创建索引:
CREATE INDEX NOMBREACCION_CTX ON ACCION(NOMBRE_ACCION) INDEXTYPE IS CTXSYS.CONTEXT parameters ('LEXER cust_lexer WORDLIST cust_wordlist');
当我 运行 使用词干运算符 ($) 进行查询时,出现以下错误:
ORA-20000: Oracle Text error:
DRG-00100: internal error, arguments : [50935],[drpn.c],[1113],[],[]
DRG-00100: internal error, arguments : [50935],[drpnw.c],[651],[],[]
DRG-00100: internal error, arguments : [51002],[drwa.c],[597],[],[]
DRG-00100: internal error, arguments : [51029],[drwas.c],[498],[ACCION],[]
DRG-51023: stemmer file cannot be opened
20000. 00000 - "%s"
*Cause: The stored procedure 'raise_application_error'
was called which causes this error to be generated.
*Action: Correct the problem as described in the error message or contact
the application administrator or DBA for more information.
根据 Oracle 文档,词干功能应该适用于西班牙语:http://docs.oracle.com/cd/B28359_01/text.111/b28304/amultlng.htm#CCREF2294
此外,这似乎不是 Oracle XE 中缺少的功能:http://docs.oracle.com/cd/E17781_01/doc.112/e21743/toc.htm#XERDM105
如果我将 'SPANISH' 更改为 'ENGLISH',它就可以正常工作。有没有人设法在 Oracle Text 中设置西班牙语词干提取?
经过一些研究,我发现西班牙语词干提取在完整的 Oracle 安装中工作正常。
对于词干提取,Oracle 需要一个在 Oracle XE 安装中不可用的字典。 Oracle XE 只安装了英语和日语词典。
我正在尝试创建 Oracle Text 索引以对数据库中某些西班牙语文本列进行 FTS 查询。 根据 Oracle 文档,我需要创建一个 LEXER 和一个 WORDLIST 来启用词干查询和模糊查询:
exec ctxsys.ctx_ddl.create_preference ('cust_lexer','BASIC_LEXER');
exec ctxsys.ctx_ddl.set_attribute ('cust_lexer','base_letter','YES');
exec ctxsys.ctx_ddl.set_attribute ('cust_lexer','index_stems','SPANISH');
exec ctxsys.ctx_ddl.create_preference('cust_wordlist','BASIC_WORDLIST');
exec ctxsys.ctx_ddl.set_attribute('cust_wordlist','stemmer','AUTO');
exec ctxsys.ctx_ddl.set_attribute('cust_wordlist','fuzzy_match','AUTO');
然后使用这些首选项创建索引:
CREATE INDEX NOMBREACCION_CTX ON ACCION(NOMBRE_ACCION) INDEXTYPE IS CTXSYS.CONTEXT parameters ('LEXER cust_lexer WORDLIST cust_wordlist');
当我 运行 使用词干运算符 ($) 进行查询时,出现以下错误:
ORA-20000: Oracle Text error:
DRG-00100: internal error, arguments : [50935],[drpn.c],[1113],[],[]
DRG-00100: internal error, arguments : [50935],[drpnw.c],[651],[],[]
DRG-00100: internal error, arguments : [51002],[drwa.c],[597],[],[]
DRG-00100: internal error, arguments : [51029],[drwas.c],[498],[ACCION],[]
DRG-51023: stemmer file cannot be opened
20000. 00000 - "%s"
*Cause: The stored procedure 'raise_application_error'
was called which causes this error to be generated.
*Action: Correct the problem as described in the error message or contact
the application administrator or DBA for more information.
根据 Oracle 文档,词干功能应该适用于西班牙语:http://docs.oracle.com/cd/B28359_01/text.111/b28304/amultlng.htm#CCREF2294
此外,这似乎不是 Oracle XE 中缺少的功能:http://docs.oracle.com/cd/E17781_01/doc.112/e21743/toc.htm#XERDM105
如果我将 'SPANISH' 更改为 'ENGLISH',它就可以正常工作。有没有人设法在 Oracle Text 中设置西班牙语词干提取?
经过一些研究,我发现西班牙语词干提取在完整的 Oracle 安装中工作正常。 对于词干提取,Oracle 需要一个在 Oracle XE 安装中不可用的字典。 Oracle XE 只安装了英语和日语词典。