1. 程式人生 > >Oracle 中 CONTAINS 函數的用法

Oracle 中 CONTAINS 函數的用法

con form 表達 new _id near about span code

Oracle 中 CONTAINS 函數的用法

1. 查詢住址在北京的學生

SELECT student_id,student_name
FROM students
WHERE CONTAINS( address, beijing )


remark: beijing是一個單詞,要用單引號括起來。

2. 查詢住址在河北省的學生

SELECT student_id,student_nameFROM students
WHERE CONTAINS( address, "HEIBEI province" )


remark: HEBEI province是一個詞組,在單引號裏還要用雙引號括起來。

3. 查詢住址在河北省或北京的學生

SELECT student_id,student_nameFROM 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 等等。

8. 詞查詢示例

  詞查詢是對輸入到 CONTAINS 運算符中單引號間的精確單詞或短語的查詢。在以下示例中,我們將查找文本列中包含 oracle 一詞的所有文檔。每行的分值由使用標簽 1 的 SCORE 運算符選定:

  

SELECT SCORE(1) title from news WHERE CONTAINStextoracle1> 0

  在查詢表達式中,可以使用 AND 和 OR 等文本運算符來獲取不同結果。還可以將結構性謂詞添加到 WHERE 子句中。可以使用 count(*)、CTX_QUERY.COUNT_HITS 或 CTX_QUERY.EXPLAIN 來計算查詢的命中 (匹配) 數目。

9 ABOUT查詢示例

  在所有語言中,ABOUT查詢增加了某查詢所返回的相關文檔的數目。在英語中,ABOUT 查詢可以使用索引的主題詞組件,該組件在默認情況下創建。這樣,運算符將根據查詢的概念返回文檔,而不是僅依據所指定的精確單詞或短語。例如,以下查詢將查找文本列中關於主題 politics 的所有文檔,而不是僅包含 politics 一詞的文檔:

  SELECT SCORE(1) title from news WHERE CONTAINStextabout(politics)1> 0;

Oracle 中 CONTAINS 函數的用法