Oracle Text,如何删除标点符号

时间:2015-01-14 11:40:29

标签: oracle oracle-text

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

ORA-20000:Oracle Text错误

DRG-50962:变换输入字符串

中不允许使用查询运算符

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

    (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 

1 个答案:

答案 0 :(得分: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 ;

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