クエリでcontains()メソッドを使用して、多くの不要な結果を取得します。のようなものを使用するように言わないでください。これはハードコードされており、変更できませんでした。
Containsは、検索のためにテキストフィールドにインデックスを付ける「CONTEXTインデックス」を持つテキストフィールドで使用されます。標準的な使用法は次のとおりです(score
演算子を使用して、contains
の1とcontains
の1がscore
句から返されるものを表示します。 _):
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
つまり、containsはlikeに似ていますが、テキストフィールドで文字列が発生する回数をカウントします。投稿したクエリでの使用方法を含むを使用してリソースを見つけることができませんでしたが、dFullText
にcar
のインスタンスが少なくとも1つある行が返されるか、またはこの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;