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
等等。
以上例子都使用英文,不使用中文是因為有的查詢方式中文不支持,而且我的計算機是英文系統。
以上就是全文本檢索的應用(2)的內容,更多相關文章請關注PHP中文網(m.sbmmt.com)!