0

私は Oracle を初めて使用し、Oracle Text を使用してインデックスでテキスト検索を実行する基本的なアプリケーションを作成しました。

私のテーブル構造は次のとおりです。

[  Table: Stores ]
------------------
store_id        PK
name           VC2
description    VC2

私の説明フィールドには、それに対して割り当てられたインデックスがあります。

CREATE INDEX stores_desc_ctx_idx  ON stores(description) INDEXTYPE IS ctxsys.context;

SQLDeveloper で [インデックス] タブに INDEX が存在することを確認しましたが、クエリを実行すると、特定の行のデータが入力文字列と一致していることが明確にわかる場合でも、返される結果は常に null です。

説明 A を次のようにします。

Local GAME store in Plymouth, selling all the latest titles as well as legacy ones!

説明 B:

Local Morrison's store in Plymouth, selling all the food you could possibly want!

クエリをしてみましょう:

SELECT * FROM stores WHERE contains(description, 'GAME') > 0;

クエリの結果が説明 A を返すことを期待しますが、結果が返されません...ここで何が間違っていますか?

4

2 に答える 2

0

「Create index」ステートメントで「Parameters」構文を使用して、DBシステムによって全文索引がいつ更新されるかを指定できます。たとえば、次のステートメントは、各コミット後に更新される全文索引を作成します。

CREATE INDEX stores_desc_ctx_idx ON stores(description) INDEXTYPE IS ctxsys.context PARAMETERS ('SYNC(ON COMMIT)');

可能なすべての「SYNC」オプションについては、Oracle ドキュメントを参照してください。

于 2015-01-19T17:21:38.247 に答える