2013-04-01 46 views
0

假設我的數據庫中有1 GB的數據。我想要做這樣的事情:sql命令還是動態編程?

如果用戶搜索一個句子,比如'Hello world I am here。',那麼程序應該能夠返回找到該確切字符串的數據(行),以及也有類似文本的行,例如'Hello world is a famous string,I believe!'。

我的問題是:哪一個會更有效率 - 一個sql命令或動態編程概念?

如果sql更有效率,那麼可以用來做同樣的命令是什麼?

我用mysql 5.6

+2

請通過添加適當的標記(Oracle,SQL Server,MySQL等)來指定您要定位的RDBMS。可能會有利用不被普遍支持的語言或產品功能的答案。此外,通過爲特定的RDBMS添加標籤,您的問題可能會得到更適合回答的人的關注 – Taryn

+0

@bluefeet +1 - 更好的問題會得到更好的答案。 –

+0

你的挑戰將是定義「相似性」,以及你認爲什麼東西足夠接近匹配......例如,這個匹配:「你好,我聽到了!做一場比賽? – Randy

回答

2

你想使用MySQL,這是記錄here全文能力。

基本上,你需要的數據結構是一個倒排索引。對於每個單詞,這包含單詞在所有文檔中的位置。有了這些信息,你就可以開始拼湊事物。

在大多數情況下,使用已建立的軟件而不是編寫自己的軟件會更好。如果你真的想,我不想阻止你,但是這個問題可能比你想象的要困難。

+0

絕對是一個難題。 – Randy

+0

嘿感謝您的答案..使用動態編程,我幾乎完成了這部分。但是我的導師問'爲什麼你不能使用mysql?'這就是爲什麼我需要你的幫助 – Hemant