2017-07-30 179 views
2

我正嘗試在我的網站上創建一個簡單的搜索頁面,但發現很難像我期望的那樣獲得全文搜索的工作。在SQL Server中全文搜索

實例搜索:

select * 
from Movies 
where contains(Name, '"Movie*" and "2*"') 

示例數據:

Id Name 
------------------ 
1 MyMovie 
2 MyMovie Part 2 
3 MyMovie Part 3 
4 MyMovie X2 
5 Other Movie 

搜索像"movie*"返回任何結果,因爲長期處於工作中。

搜索像"MyMovie*" and "2*"只返回MYMOVIE第2部分,而不是MYMOVIE部分X2

好像我可以只砍在一起的動態SQL查詢,將只 and name like '%movie%' and name like '%x2%'和它的工作比全文檢索好這似乎很奇怪因爲它是SQL的一大部分,但似乎不像簡單的用法那樣好。

我已經關閉了我的停止列表,所以數字和單個字符的結果出現,但它似乎並不適用於我正在做的事情,這似乎相當基本。

+0

爲什麼你只是不能使用一些東西:像'%電影%2%'這樣的名字? –

+1

@ЕвгенийКондратенко在大字段的大表上會出現可怕的表現,這就是全文索引的全部要點。 –

+0

@ЕвгенийКондратенко找不到「part 2 mymovie」之類的東西,因爲它必須按照正確的順序排列。 – user3953989

回答

0

選擇 * 從影 其中 名稱等( '%電影%') 或類似物( '%2%') 名稱;