我有一個有趣的問題,我需要幫助。我目前的工作對我的節目的特徵和偶然到這個問題給定一組龐大的街道名稱,測試文本是否包含該街道名稱的最有效方法是什麼?
我有一個巨大的存儲在數據庫中印尼(> 10萬行)街道名稱的列表, 每個街道名稱可能有不止1字。例如:「Sudirman」,「Gatot Subroto」或「Jalan Asia Afrika」都是合法的街道名稱
在數據庫中有一堆文本(> 1百萬行),我將其分成了句子。現在,我需要做的功能(確切功能)是測試句子中是否有街道名稱或不是,所以只是一個真/假測試
我試圖通過做這些來解決它步驟:
a。將街道名稱放入鑰匙,價值哈希值
b。將每個句子拆分成單詞
c。測試是否的話是在散
這是快,但不會多話
另一種替代方案,我認爲的工作是做下列步驟操作:
一個。將每個句子拆分爲單詞
b。使用LIKE語句查詢數據庫(例如,SELECT #### FROM street_table WHERE name like'%word%')
c。如果查詢返回了一行,這意味着該句子包含街道名稱
現在,這個解決方案將是一個非常密集的IO。
所以我的問題是「什麼是最有效的方法來做這個測試」?不管編程語言如何。我主要在Python中做這個,但只要我能理解概念,任何語言都可以。
============編輯1 ============ =====
這是週期性的嗎?
是的,我會以1分鐘的間隔調用此功能/功能。每次調用將100列文本至少和測試他們對街道名稱數據庫
做,我不知道關於語言標記之前 –
只需使用Apache Lucene的。 – bmargulies
你只需要一次,或者這是一項定期任務? – georg