在我的查询中使用contains()方法有很多不必要的结果。不要告诉我使用喜欢或其他东西。它是硬编码的,无法更改。
答案 0 :(得分:16)
包含用于具有“上下文索引”的文本字段,该索引将文本字段编入索引以进行搜索。标准用法是这样的(使用score
运算符显示contains
子句中基于contains
中与score
中的1匹配的1)返回的内容:< / p>
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%"
Here是另一个来源。
答案 1 :(得分:0)
请参阅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;