1

我在阿拉伯语网站的索引 URL 中使用 Oracle 文本,我注意到在索引站点时它不会忽略标点符号,因为不支持阿拉伯语并且没有同义词库。当我搜索一个没有标点符号的句子时,分数很低,当我用标点符号搜索时返回不好的结果,有时它会返回这个错误:

ORA-20000:Oracle 文本错误

DRG-50962:转换输入字符串中不允许使用查询运算符

我知道这个错误是什么意思,一些句子包含 Oracle Text 运算符,我如何在搜索中忽略它们(按原样发送句子),或者要删除的运算符列表是什么。注意:我正在使用查询重写和转义序列

    (select  /*+ FIRST_ROWS(1)*/  id,score(1) as sc1, isn ,sentence_length,URL from    plag_web_temp_docsentences 
              where contains(URL,'<query>
   <textquery>' || OriginalSentence ||'
     <progression>
      <seq><rewrite>transform((TOKENS,  "{", "}", "{ }"))</rewrite></seq>

     </progression>
   </textquery>
  <score datatype="INTEGER" algorithm="COUNT"/>
</query>',1)>0 
4

1 回答 1

1

好的,我认为查询重写不允许转义序列(没有参考,但只是我的经验)所以我正常使用了转义序列,我的查询看起来像这样,它工作

select  /*+ FIRST_ROWS(1)*/  id,score(1) as sc1, isn ,sentence_length,URL from                plag_web_temp_docsentences 
              where contains(URL,'{'|| OriginalSentence ||'}',1)>0 ;

但如果有人有其他解决方案,请建议

于 2015-01-14T23:40:44.357 回答