contains搜尋方式
1.簡單詞搜尋 - 搜尋乙個或多個特定的詞或短語。詞可以包括乙個或多個字元,中間沒有空格或標點。短語可以由空格分隔的多個詞組成,但詞之間可以有標點也可以沒標點:
--2.字首詞搜尋的方式 - 搜尋指定文字開頭的詞或短語,字首詞的搜尋方式主要是用在搜尋英文中,例如搜尋以「do」開頭的單詞,則可以將doctor、document、download等單詞都搜尋出來。搜尋文章內容含有張三或者李四的記錄
select
*from article where
contains(articlecontent,'
"張三" or "李四"
')
--3.加權詞搜尋的方式 - 給多個搜尋條件加上權值,加權值越高的記錄排在越前面,當以多個字串作為搜尋條件搜尋記錄時,可以為不同的字串加上乙個加權值,這個加權值是介於0和1之間的數值,加權值越高的記錄排在越前面。事實上在該select語句的返回結果集裡,並沒有按加權值的大小來排序,因為weight不影響contains查詢的結果,只會影響containstable查詢中的排序:搜尋文章內容中含有以'認'開始的詞的記錄
select
*from article where
contains(articlecontent,'
"認*"
') --
認為,認識
--4.鄰近詞搜尋的方式 - 可以搜尋與另乙個詞或短語相鄰近的詞或短語:在contains搜尋中,權重並不影響排序
select
*from
article
where
contains(articlecontent,'
isabout ("北京" weight(0.9),"上海" weight(0.6),"廣州" weight(0.5))
')
--freetext搜尋方式freetext搜尋方式與contains搜尋方式相比,其搜尋結果表現都十分不精確,因為freetext的搜尋方式是將乙個句子中的每個單字拆分開進行搜尋的。使用contains搜尋方式搜尋條件為「教育部」的記錄,那麼搜尋出來的將是記錄裡包含「教育部」三個字串的記錄。select
*from article where
contains(articlecontent,'
"張三" near "李四"
')
--containstable搜尋方式1、containstable基本搜尋:搜尋文章內容中包含'程'字和'社'字的記錄
select
*from article where
freetext(articlecontent,'
程社')
--留意到返回中指包含了兩個字段:containstable搜尋文章內容中含有友誼的記錄
select
*from
containstable(article,articlecontent,'
友誼') as table1
其實就是containstable表中的資料。
2、containstable返回所需列:
--containstable搜尋返回所需列
select
*from article join
containstable(article,articlecontent,'
"環境"
3、constainstable按符合條件排序
--按符合條件排序看到查詢結果的確按符合條件進行了排序:select
*from article join
containstable(article,articlecontent,'
"泰國" near "高鐵"
',10) as
table1
on article.articlecontent = table1.[
key]
order
by table1.rank desc
4、constainstable按按權值排序
--結果按照權重值排序:權重值排序
select
*from article join
containstable
(article,articlecontent, '
isabout ("泰國" weight(0.9),
"高鐵" weight(0.6),
"環境" weight(0.1))
') as
table1
on article.articlecontent = table1.[
key]
order
by table1.rank desc
使用freetexttable搜尋
單個字搜尋,但是多了引數可供使用:語法如下:
freetexttable (table ,示例:, 'freetext_string'[
,language language_term ][
,top_n_by_rank
] )
搜尋image欄位
在sql server 2005的image型別的字段裡,不僅僅是可以儲存圖形檔案,還可以儲存如可執行檔案、**檔案、文字檔案等眾多檔案型別。sql server 2005支援對儲存在image型別的字段裡的一些檔案的內容進行全文搜尋,但在建立全文索引時必須指明儲存在image欄位裡的檔案的型別。
sql server 2005支援對儲存在image中的純文字檔案、網頁檔案、word檔案、excel檔案和powerpoint檔案的內容進行查詢,其擴充套件名字段必須分別為txt、htm、doc、xls和ppt。全文索引建立完畢後,對image欄位裡的檔案內容進行查詢的方法與其他欄位的查詢方法是一樣的:
select 編號,標題,檔案,副檔名 from文章 where
contains(檔案,'
資料庫')
select * from [content] t1 joincontainstable([content], * , '(aa~ bb~ aa) or (aa~ bb) or (aa~ cc) or (bb ~ aa) or isabout (aa weight(0.08), bb weight(0.06), cc weight(0.03), ee weight(0.01))' ) as t2
on t1.id = t2.[key]
order by t2.rank desc
create fulltext catalog [searcharticle] with accent_sensitivity = on--建立全文索引
create fulltext index on article( [title], [content])
key index [pk__article__3213e83f1523e1f2] on [searcharticle] --indexcontent是唯一索引名
MySQL使用全文本搜尋
1.理解全文本搜尋 mysql資料庫支援幾種基本的資料庫引擎中,並不是所有的引擎都支援本文所描述的全文本搜尋。在兩種最常用的引擎myisam和innodb中,只有前者支援全文本搜尋,而後者不支援。所以如果需要對錶進行全文本搜尋,則需要把該錶的引擎設定為myisam。全文本搜尋有比like匹配和正規表...
Mongodb 全文搜尋
全文索引的建立比較慢,實操中需要等伺服器閒時或者離線進行 否則會阻塞讀寫,當然也可以放在後台執行 新增全文索引 db tesla ensureindex 給 song lyrics 字段新增全文索引。權重分配,lycris 的權重為2,song 的權重為1.權重越大優先順序越高,權重的區間為1 10...
全文模糊搜尋
1.對原文進行分詞,再通過相應的搜尋演算法進行查詢 主要是中文分詞,這裡推薦 2.資料庫方式,通過全文索引進行搜尋 建立全文索引的表的儲存引擎型別必須為myisam 問題是match against對中文模糊搜尋支援不是太好 新建乙個utf8 myisam型別的表並建立乙個全文索引 create t...