這裡主要講全文檢索搜尋裡面用到的 Contains 函數,摘錄別人的文章,感覺寫的好,拿來分享一下。
假設有表 students,其中的 address 是全文本檢索的列。
1. 查詢住址在北京的學生
SELECT student_id,student_name
FROM students
WHERECONTAINS( address, 'beijing' )
remark: beijing是一個單詞,要用單引號括起來。 網管下載dl.bitscn.com
2. 查詢住址在河北省的學生
SELECT student_id,student_name
FROM students
WHERECONTAINS( address, '"HEIBEI province"' )
remark: HEBEI province是一個片語,在單引號裡還要用雙引號括起來。
中國網管論壇bbs.bitsCN.com
3. 查詢住址在河北省或北京的學生
SELECT student_id,student_name
FROM students
WHERECONTAINS( address, '"HEIBEI province" OR beijing' )
remark: 可以指定邏輯操作符(包括 AND ,ANDNOT,OR )。
網管下載dl.bitscn.com
4. 查詢有 '南京路' 字樣的地址
SELECT student_id,student_name
FROM students
WHERECONTAINS( address, 'nanjing NEAR road' )
remark: 上面的查詢將返回包含 'nanjing road','nanjing east road','nanjing west road' 等字樣的地址。
A NEAR B,就表示條件: A 靠近 B。
網管網www.bitscn.com
5. 查詢以 '湖' 開頭的地址
SELECT student_id,student_name
FROM students
WHERECONTAINS( address, '"hu*"' )
remark: 上面的查詢將返回包含 'hubei','hunan' 等字樣的地址。
記住是 *,不是 %。
網管論壇bbs_bitsCN_com
6. 類似加權的查詢
SELECT student_id,student_name
FROM students
WHERECONTAINS( address, 'ISABOUT (city weight (.8), county wright (.4))' )
remark: ISABOUT 是這種查詢的關鍵字,weight 指定了一個介於 0~1之間的數,類似係數(我的理解)。表示不同條件有不同的側重。 網管下載dl.bitscn.com
7. 單詞的多態查詢
SELECT student_id,student_name
FROM students
WHERECONTAINS( address, 'FORMSOF (INFLECTIONAL,street)' )
remark: 查詢將返回包含 'street','streets'等字樣的地址。
對於動詞將返回它的不同的時態,如:dry,將返回 dry,dried,drying 等等。
本文來自CSDN部落格,轉載請標明出處:http://blog.csdn.net/htl258/archive/2009/03/17/3996728.aspx