2012-12-07 50 views
2

我正在使用Oracle 11g。模糊運算符有什麼作用?

我已經試過了Oracle Text功能,至今我很喜歡它。我現在需要支持在拼寫錯誤的單詞上進行搜索。所以,我發現CONTAINS支持Fuzzy運營商這似乎是我的東西!

但我想知道更多關於運營商內部發生的事情。它有什麼作用?它是否使用編輯距離或jaro-winkler距離進行相似性評分?我特別想要使用jaro-winkler距離。該文件說,它只支持某些語言。我的語言不在名單上。我是否仍然可以使用Fuzzy運算符,還是不會執行任何操作(NOP)?

如果我不能使用Fuzzy運算符來解決我的問題,還有什麼方法?我不完全明白NDATA,但我不認爲它適用於我的問題。我發現JARO-WINKLER-SIMILARITY函數正是我所需要的,但是我怎樣才能在搜索中使用它(在CONTAINS函數中)?

回答

2

我對Oracle模糊搜索的理解是,他們有自己的「黑匣子」功能來定義兩個關鍵詞之間的相似性,用戶對這個功能沒有太多的控制。

如果要使用編輯距離執行模糊搜索,可以考慮使用UDF。這裏有一個例子(使用MySQL):http://flamingo.ics.uci.edu/toolkit/