我有一個存儲某些文檔內容的BLOB字段。Oracle DB - 包含函數中的特殊字符
我的Java程序想要做對領域的搜索,
這裏是我的SQL語句:
Select * from table_A where CONTAINS(BLOB_FIELD,'{Keyword}') > 0;
當用戶輸入 'P-' 和 'P =',他們得到了一些結果。 我想解決這個問題,謝謝!
我有一個存儲某些文檔內容的BLOB字段。Oracle DB - 包含函數中的特殊字符
我的Java程序想要做對領域的搜索,
這裏是我的SQL語句:
Select * from table_A where CONTAINS(BLOB_FIELD,'{Keyword}') > 0;
當用戶輸入 'P-' 和 'P =',他們得到了一些結果。 我想解決這個問題,謝謝!
如果您想要搜索實際字符( - ,=,*,%等),CONTAINS會使用一定數量的字符/字詞,這些字符/字詞必須轉義。嘗試「P \ - 」,看看是否有幫助...如果沒有看到下面。
此外,您的LEXER設置確定P後面的一個句點確定了單詞分隔符(句尾)的機率非常高。這由DBA控制,並具有一些相當複雜的邏輯,用於確定文本搜索時如何拆分/不拆分單詞。
當BLOB_FIELD包含'P.1/1'(頁碼)時,我發現'P-','P =','P''都會輸出相同的結果 – Ricky
BLOB_FIELD中存儲了哪種類型的文檔? (pdf,doc?) –