2013-01-16 162 views
2

我的項目基於問題和解答(stackoverflow樣式)。搜索引擎的SQL查詢

我需要允許用戶搜索以前提出的問題。

問題表會是這樣的:

Questions 
------------------------------------------------- 
id     questions 
------------------------------------------------- 
1     How to cook pasta? 
2     How to Drive a car? 
3     When did Napoleon die? 

現在,當我打算寫的東西搜索,我會寫這樣的事:

When did Brazil win the world cup? 

比方說,我要拆分這個字符串上的空間,到一個字符串數組

什麼是最好的SELECT SQL查詢來獲取包含這些字符串,忽略大寫和小寫每個單詞,並通過較少提及的詞排序的結果,爲什麼所有的問題嗎?

因爲會有其中將包含當這麼多的問題,而且,將如何,等,但沒有這麼多,這將有巴西,所以巴西問題將像關鍵文字

我使用SQL Server 2008的

+0

全文檢索怎麼辦? –

回答

4

你真的不想在原始SQL在做這個。

我建議你看看你的數據庫的全文搜索選項,this可能是一個很好的開始。

+0

我試圖執行一個查詢,其中有[WHERE CONTAINS],但後來我發現該列沒有全文索引,並且全文索引選項在Visual Studio 2010中呈灰色,我無法啓用它,即使在使用諸如[exec sp_fulltext_database'enable'之類的查詢之後] –

0

更多信息您的選項不是最好的一個。看看開源的Apache Solr項目。 http://lucene.apache.org/solr/

Solr是一個具有類似REST的API的獨立企業搜索服務器。您可以通過XML,JSON,CSV或HTTP上的二進制文件將文檔(稱爲「索引」)。您可以通過HTTP GET查詢並接收XML,JSON,CSV或二進制結果。

  • 先進的全文搜索優化大容量Web功能
  • 交通基於標準的開放接口 - XML,JSON和HTTP
  • 綜合HTML管理界面服務器統計
  • 暴露了JMX監測線性縮放,汽車指數
  • 複製,自動故障切換和恢復接近實時索引
  • 靈活性和適應性與XML配置擴展插件 建築

看看詳細功能和aspecialy查詢部分。有你的應用程序所需的一切。