【単独 データカラムインデックス】

GF83  ﾌｧｲﾙ検索ﾃｰﾌﾞﾙ
	ソーステキスト	SRC_TEXT

①データストア・プリファレンスを作成します。
	各列が単一のドキュメントとして索引付けします。
EXEC CTX_DDL.DROP_PREFERENCE('GF83_TXT');

BEGIN
	CTX_DDL.CREATE_PREFERENCE('GF83_TXT', 'DIRECT_DATASTORE');
END;


②.インデックスの作成。
  CTXSYS.CONTEXT で、先ほどの、DATASTORE を指定します。

DROP INDEX GF83_TXT_IDX ;

--CREATE INDEX GF83_TXT_IDX ON GF83(SRC_TEXT)
--	INDEXTYPE IS CTXSYS.CONTEXT
--	PARAMETERS ('DATASTORE GF83_TXT');

④.日本語用のﾚｸｻｰも追加します。
BEGIN
	CTX_DDL.CREATE_PREFERENCE('JPN_LX','JAPANESE_LEXER');
END;

CREATE INDEX GF83_TXT_IDX ON GF83(SRC_TEXT)
	INDEXTYPE IS CTXSYS.CONTEXT
	PARAMETERS ('DATASTORE GF83_TXT LEXER JPN_LX');

⑤全文検索用のトークンが参照できる。GF83_TXT_IDX はさっき作ったインデックスを指定します。
select count(*) from DR$GF83_TXT_IDX$I ;

=====================================================
テキスト索引の同期化
EXEC CTX_DDL.SYNC_INDEX( 'GF83_TXT_IDX' );

テキスト索引のメンテナンス
EXEC CTX_DDL.OPTIMIZE_INDEX( 'GF83_TXT_IDX','FAST' );

削除されて既に検索対象表に存在していないトークンを削除
EXEC CTX_DDL.OPTIMIZE_INDEX( 'GF83_TXT_IDX','FULL' );


=====================================================
⑦SNIPPET
  ドキュメントの用語索引を作成するには、CTX_DOC.SNIPPETプロシージャを使用します。
  用語索引とは、問合せ語句とその前後のテキストを含むテキストの断片（フラグメント）です。
  この用語索引は、マークアップされた問合せキーワードを前後のテキストと一緒に戻すため、
  文脈付きキーワード（KWIC）としても知られており、ユーザーは問合せキーワードを文脈で評価できます。

※通常は、問合せの後で処理するドキュメントを特定してから使用する

SELECT UNIQ FROM GF83 WHERE CONTAINS (SRC_TEXT, '使用検索') > 0;
結果、UNIQ = 190726 の SNIPPET を求める。
select CTX_DOC.SNIPPET('GF83_TXT_IDX','190726','使用検索') from dual

実際には、プライマリキーを JOIN することで、検索結果の 用語索引
を取り出すことができますが、何か別の方法を考えるべき？

select CTX_DOC.SNIPPET('GF83_TXT_IDX',UNIQ,'使用検索')
	from GF83
	WHERE CONTAINS (SRC_TEXT, '使用検索') > 0;


スコアを戻すには、SCORE演算子を指定します。
逆順に表示すれば、スコアの高い順に表示できます。

select SCORE(1),CTX_DOC.SNIPPET('GF83_TXT_IDX',UNIQ,'使用検索')
	from GF83
	WHERE CONTAINS (SRC_TEXT, '使用検索',1) > 0
	ORDER BY SCORE(1) DESC ;


表示件数を絞るには、副問合せで、ROWNUM を使います。
件数を絞り込んでから、SNIPPET を表示させます。

select SCR,CTX_DOC.SNIPPET('GF83_TXT_IDX',UNIQ,'使用検索') as TXT
from (
	select SCORE(1) as SCR,UNIQ
		from GF83
		WHERE CONTAINS (SRC_TEXT, '使用検索',1) > 0
		ORDER BY SCORE(1) DESC
)
where rownum < 11


