繼我上一篇文章Link here後,我們現在面臨的另一個挑戰是找到地址字段[ADDR_LINE_1, ADDR_LINE_2, CITY, STATE, ZIP]
的最佳匹配。查找字符串值的最佳匹配 - Oracle/Java
我們希望返回數據庫中的所有記錄,這些記錄可能與來自文件的傳入地址記錄相匹配。場景是:
以下是數據庫中的2條記錄;
ADDR_LINE_1, ADDR_LINE_2 , CITY , STATE, ZIP
001 Chestnut Avenue, Apt 100 , Indiana , IN , 9999
Apt 100 , 001 Chestnut Ave., Indianapolis, IN , 9999
對於來電記錄,如下
ADDR_LINE_1, ADDR_LINE_2, CITY , STATE, ZIP
1 Chestnut Avenue, Apt 100 , Indiana , IN , 9999
我要檢測的記錄作爲現有的記錄,並列出了上述兩種可能的匹配。
[注意:]數據庫條目的順序是互換的,但仍應列爲可能的匹配項。
任何人都可以請提供建議,我可以怎麼做呢?
第一階段 - 將「可能匹配」定義爲沒有交手的地方,並強烈定義給定記錄是否可能匹配。第二階段 - 實現這個布爾函數(現在應該很簡單)。 –
感謝您的建議,以下是我至今所能想到的:我至少可以根據某些「常量」值(如City,State,Zipcode)過濾掉記錄。這可能會幫助我縮小範圍。然後,對於地址線1和地址線2中的字符串標記,我可以連接並查找是否至少有1/2個標記匹配,即連接「001 Chestnut Avenue」和「Apt 100」,並與傳入記錄「1 Chestnut Avenue Apt 100「,並在5個字符串標記匹配的第3個字符處找到。這使得整個記錄成爲可能。 –
雖然關於性能,我有點擔心 –