[英]How does contains() in PL-SQL work?
在我的查询中使用 contains() 方法有很多不必要的结果。 不要告诉我使用喜欢或其他东西。 它是硬编码的,无法更改。
包含用于具有“CONTEXT 索引”的文本字段,该索引可索引用于搜索的文本字段。 标准用法是这样的(使用score
运算符根据 1 in contains
匹配 1 in score
来显示从contains
子句返回的contains
):
SELECT score(1), value
FROM table_name
WHERE CONTAINS(textField, 'searchString', 1) > 0;
对于表table_name
这样的数据
value | textField
-------|-----------------------------------------------
A | 'Here is searchString. searchString again.'
B | 'Another string'
C | 'Just one searchString'
该查询将返回
2 A
1 C
所以包含类似于喜欢,但会计算字符串在文本字段中出现的次数。 我找不到使用包含在您发布的查询中使用它的方式的资源,但我认为这将返回dFullText
中至少有一个car
实例的行,或相当于此 sql 的行:
Select * from blabla where dFullText like "%car%"
这是另一个来源。
请参阅oracle.com 中的此示例
declare
rowno number := 0;
begin
for c1 in (SELECT SCORE(1) score, title FROM news
WHERE CONTAINS(text, 'oracle', 1) > 0
ORDER BY SCORE(1) DESC)
loop
rowno := rowno + 1;
dbms_output.put_line(c1.title||': '||c1.score);
exit when rowno = 10;
end loop;
end;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.