0

Oracle Text を使用すると、奇妙な動作が発生します。次の表を作成しました。

CREATE TABLE TEST_OTEXT_TABLE (id NUMBER PRIMARY KEY, text VARCHAR2(200));

そして、テーブルに次のデータを入力しました。

1   California is a state in the US.
2   Paris is a city in France.
3   France is in Europe.
4   Italy is a city in Europe.

次に、インデックスを作成しました。

CREATE INDEX TEST_OTEXT_INDEX ON TEST_OTEXT_TABLE(text)
INDEXTYPE IS CTXSYS.CONTEXT 
parameters ('DATASTORE CTXSYS.DEFAULT_DATASTORE');

EXEC CTX_DDL.SYNC_INDEX('TEST_OTEXT_INDEX', '2M');

私が走れば

select id, score(1) from TEST_OTEXT_TABLE WHERE CONTAINS (text, 'is a city', 1) > 0 ;

Oracle Text が正しく返されるため、すべて正常に動作します。

    ID   SCORE(1)
---------- ----------
     2          4
     4          4

ただし、実行すると

select id, score(1) from TEST_OTEXT_TABLE WHERE CONTAINS (text, 'is a', 1) > 0 ;

戻ります

no rows selected

まったく同じ結果を返す代わりに。

4

2 に答える 2

1

はストップワードです。つまり、テキストとの関連性がないことを意味します。まったく索引付けされていない可能性があります。ストップワード リストを編集して、索引付けする単語を削除できます。

于 2017-07-13T23:41:25.413 に答える