日期:2014-05-18  浏览次数:20634 次

剛用SQL 的新手想創建一個能快速搜索的尋資料庫
大家好 我是剛用SQL的新手 工具是SQL 2008 R2 

目前剛入門 所以有很多不懂的地方 希望大家多多指教 

目前我手邊有個CASE 我要做一個人工回話的資料庫 應該說是回話機器人這樣的資料庫 

對方講一句 然後我回一句 在還沒接觸資料庫之前 在下是用VB.net StreamReader 資料流讀取器

去讀寫資料的 就是像以下這樣

路人甲 :哈摟 AI :你好阿  

哈摟|你好嗎

將這句話存入一個記事本內 然後它會去比對所有的數據資料 比對完後 將資料 你好嗎 

存入變數 再送出 可是用資料流讀取器似乎只適合小量的資料搜尋 搜尋方法是很慢的 用線性搜尋的比對方式 

去搜出資料 假裝我建個10萬條句子進去 不曉得要搜索到什麼時候了

我要求的是搜尋速度快的資料蒐尋方法 

所以我開始接觸了資料庫 有聽人講過裡面似乎有內建大量的演算法

把資料庫建好之後 再用LINQ 去把數據庫調過來用 目前在下的資訊只有這樣

那像我這個CASE 數據庫該怎麼動工呢?  

因為在下才剛接出資料庫 萬事起頭難 

希望能給一點資料或代碼都行 還有演算法該怎麼用 資料愈詳細愈好 謝謝

 

------解决方案--------------------
这个貌似是人工智能方面的。要进行查询,建议使用 全文索引。

还有问题需要解决,如果搜索到两条记录的话,你使用那一条进行回复?
------解决方案--------------------
建議可以將不同的聊天話題存為不同的表,如搭訕,天文,地理,娛樂,新聞,足球,棒球,桌球...

然後前端程序做個預判斷,再去不同的表裡搜尋.
------解决方案--------------------
全文检索,只是提高你检索字串的效率,于你的业务逻辑来说,是没有太大助力。第一句时,检索只是输出固定的问答组合字串。机器要知道下句说搭讪说什么,就要指令来指引他说出一个字串。关键还在这个“指引”上。估计还是要有特定的算法加入,才能靠谱一些。
A:hi!
ET:hi,有饭吗?
ET:到底有没有饭啊?