2
有什麼方法可以讓JPQL匹配類似的字符串?Java:JPQL search -similar- strings
按類似於我的意思是:
- 包含:搜索字符串匹配項實體
- 不區分大小寫
- 小mispellings的字符串中發現的:例如「AROW」匹配「箭頭」
我懷疑前兩個將是容易的,但是,我將不勝感激幫助,最後一個
謝謝
有什麼方法可以讓JPQL匹配類似的字符串?Java:JPQL search -similar- strings
按類似於我的意思是:
我懷疑前兩個將是容易的,但是,我將不勝感激幫助,最後一個
謝謝
前兩個確實是很容易做到使用LIKE
和LOWER
或UPPER
關鍵字。最後一個很難做到,因爲它要求你定義兩個字符串的相似程度。在JPQL中沒有基本的關鍵字可以輕鬆完成這項工作(據我所知)。您可以使用像Levenshtein distance這樣的算法來確定是否存在小的誤差(距離爲1或2)。這不是在JPQL中完成的,儘管...
可能會猜測對於3)您應該使用支持這種功能的數據庫並將其作爲本地查詢運行。這將使你獲得比JPQL更多的功能,同時打破可移植性 – 2010-06-02 09:10:16
@seanizer:哪些數據庫支持此功能? – bguiz 2010-06-02 13:13:10
postgres支持它:http://www.postgresql.org/docs/8.3/static/fuzzystrmatch.html在大多數情況下,它可以使用函數/存儲過程來實現。例如在Oracle中:http://richmurnane.blogspot.com/2006/02/levenshtein-distance-algorithm-oracle.html mysql:http://codejanitor.com/wp/2007/02/10/levenshtein-distance-as- a-mysql-stored-function/mssql:http://www.bigresource.com/MS_SQL-Levenshtein-Edit-Distance-Algorithm-zRMNNbbv.html – 2010-06-02 14:09:24