2012-12-07 45 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/