="t18">
全文索引——CONTAINS 语法
我们通常在 WHERE 子句中使用 CONTAINS
就象这样:SELECT * FROM table_name WHERE CONTAINS(fullText_column,'search contents')
我们通过例子来学习
假设有表 students
其中
address 是全文本检索
列![](/icons/20837dou2.gif)
1. 查询住址在北京
学生
SELECT student_id,student_name
FROM students
WHERE CONTAINS( address, 'beijing' )
remark: beijing是
个单词
要用单引号括起来![](/icons/20837dou2.gif)
2. 查询住址在河北省
学生
SELECT student_id,student_name
FROM students
WHERE CONTAINS( address, '"HEIBEI province"' )
remark: HEBEI province是
个词组
在单引号里还要用双引号括起来![](/icons/20837dou2.gif)
3. 查询住址在河北省或北京
学生
SELECT student_id,student_name
FROM students
WHERE CONTAINS( address, '"HEIBEI province" OR beijing' )
remark: 可以指定逻辑操作符(包括 AND
AND NOT
OR )![](/icons/20837dou2.gif)
4. 查询有 '南京路' 字样
地址
SELECT student_id,student_name
FROM students
WHERE CONTAINS( address, 'nanjing NEAR road' )
remark: 上面
查询将返回包含 'nanjing road'
'nanjing east road'
'nanjing west road' 等字样
地址![](/icons/20837dou2.gif)
A NEAR B
就表示条件: A 靠近 B![](/icons/20837dou2.gif)
5. 查询以 '湖' 开头
地址
SELECT student_id,student_name
FROM students
WHERE CONTAINS( address, '"hu*"' )
remark: 上面
查询将返回包含 'hubei'
'hunan' 等字样
地址![](/icons/20837dou2.gif)
记住是 *
不是 %![](/icons/20837dou2.gif)
6. 类似加权
查询
SELECT student_id,student_name
FROM students
WHERE CONTAINS( address, 'ISABOUT (city weight (.8), county wright (.4))' )
remark: ISABOUT 是这种查询
关键字
weight 指定了
个介于 0~1之间
数
类似系数(我
理解)
表示不同条件有不同
侧重![](/icons/20837dou2.gif)
7. 单词
多态查询
SELECT student_id,student_name
FROM students
WHERE CONTAINS( address, 'FORMSOF (INFLECTIONAL,street)' )
remark: 查询将返回包含 'street'
'streets'等字样
地址![](/icons/20837dou2.gif)
对于动词将返回它
不同
时态
如:dry
将返回 dry
dried
drying 等等![](/icons/20837dou2.gif)
以上例子都使用英文
不使用中文是
有
查询方式中文不支持
而且我
计算机是英文系统![](/icons/20837dou2.gif)