2015-01-14 120 views
1

我在爲阿拉伯網站編制索引URL時使用了Oracle文本,我注意到,索引該網站時,它不會忽略標點符號,因爲阿拉伯文不受支持,也沒有同義詞庫。 當我搜索對於沒有標點的句子,得分低的,當我與標點符號搜索返回糟糕的結果 ,有時它返回此錯誤:Oracle Text,如何清除標點符號

ORA-20000:Oracle Text的錯誤

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 

回答

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 ; 

,但如果有人有另一種解決方案,請建議