全文索引谓词¶
CONTAINS¶
说明:
全文检索查询谓词。
语法:
CONTAINS(column_name, text_query VARCHAR [, label NUMBER]) RETURN NUMBER;
图例:
contains ::=
参数:
column_name
检索的文本列,该列上必须已经建立了全文索引,否则报错。
text_query
查询条件:查询项的字符串,通过空格分隔查询项;可以用大写AND、OR、NOT连接查询项,默认为AND;连接顺序必须加括号表示,否则查询结果会出错。 查询条件语法详细说明可参见:查询条件说明。
label
区分各CONTAINS操作产生的score标签。
SCORE¶
说明:
全文检索谓词,。CONTAINS返回的匹配行与查询条件的相关度,即系统评分。0表示该行与查询条件没有匹配的词;若需要引用评分,可通过全文谓词SCORE(label)获取。
语法:
SCORE(label)
图例:
score::=
参数:
label
识别获取评分的CONTAINS,即CONTAINS谓词的第三个参数。
示例:
简单查询
单个CONTAINS:
SELECT * FROM T_RESOURCE WHERE CONTAINS(DESCRIPTION, 'OSCAR') > 0;
复合查询
- 复杂条件
多个CONTAINS(两个项之间如果没有布尔操作符,默认为AND)
包含score()
其他限制条件
SECECT * FROM T_RESOURCE WHERE CONTAINS(DESCRIPTION, '中国 AND NOT 波音公司OR 美国', 1) > 0;
SECECT * FROM T_RESOURCE WHERE CONTAINS(DESCRIPTION, '中国', 1) > 0 AND CONTAINS(DESCRIPTION, '美国', 1) > 0;
SECECT score(1) FROM T_RESOURCE WHERE CONTAINS(DESCRIPTION, '中国 AND NOT 波音公司 OR 美国', 1) > 0;
SELECT T_RESOURCE.*, SCORE(1) FROM T_RESOURCE WHERE CONTAINS((DESCRIPTION, '中国', 1) > 0 order by score(1) desc;