全文索引——contains 語法
我們通常在 where 子句中使用 contains ,就象這樣:select * from table_name where contains(fulltext_column,'search contents')。
我們通過例子來學習,假設有表 students,其中的 address 是全文字檢索的列。
1. 查詢住址在北京的學生
select student_id,student_name
from students
where contains( address, 'beijing' )
remark: beijing是乙個單詞,要用單引號括起來。
2. 查詢住址在河北省的學生
select student_id,student_name
from students
where contains( address, '"heibei province"' )
remark: hebei province是乙個片語,在單引號裡還要用雙引號括起來。
3. 查詢住址在河北省或北京的學生
select student_id,student_name
from students
where contains( address, '"heibei province" or beijing' )
remark: 可以指定邏輯操作符(包括 and ,and not,or )。
4. 查詢有 '南京路' 字樣的位址
select student_id,student_name
from students
where contains( address, 'nanjing near road' )
remark: 上面的查詢將返回包含 'nanjing road','nanjing east road','nanjing west road' 等字樣的位址。
a near b,就表示條件: a 靠近 b。
5. 查詢以 '湖' 開頭的位址
select student_id,student_name
from students
where contains( address, '"hu*"' )
remark: 上面的查詢將返回包含 'hubei','hunan' 等字樣的位址。
記住是 *,不是 %。
6. 類似加權的查詢
select student_id,student_name
from students
where contains( address, 'isabout (city weight (.8), county wright (.4))' )
remark: isabout 是這種查詢的關鍵字,weight 指定了乙個介於 0~1之間的數,類似係數(我的理解)。表示不同條件有不同的側重。
7. 單詞的多型查詢
select student_id,student_name
from students
where contains( address, 'formsof (inflectional,street)' )
remark: 查詢將返回包含 'street','streets'等字樣的位址。
對於動詞將返回它的不同的時態,如:dry,將返回 dry,dried,drying 等等。
以上例子都使用英文,不使用中文是因為有的查詢方式中文不支援
Oracle全文索引之六 附 CONTAINS函式
出處 remark beijing是乙個單詞,要用單引號括起來。remark hebei province是乙個片語,在單引號裡還要用雙引號括起來。remark 可以指定邏輯操作符 包括 and and not,or remark 上面的查詢將返回包含 nanjing road nanjing ea...
SQL 全文索引
在資料庫中快速搜尋資料,使用索引可以提高搜尋速度,然而索引一般是建立在數字型或長度比較短的文字型字段上的,比如說編號 姓名等字段,如果建立在長度比較長的文字型字段上,更新索引將會花銷很多的時間。如在文章內容欄位裡用lik e 語句搜尋乙個關鍵字,當資料表裡的內容很多時,這個時間可能會讓人難以忍受。在...
建立SQL全文索引
1.開啟全文索引和建立全文索引目錄 exec sp fulltext database enable exec sp fulltext catalog gf ft drop exec sp fulltext catalog gf ft create 為news表建立全文索引 可索引列為 title,...