GF23 JAVADOCNX`t@C
	Tv		DESCRIPTION	X(4000)
	e			CONTENTS	CLOB
	`Tv	FORM_SAMPLE	CLOB

GF24 JAVADOC`t@C
	Tv	DESCRIPTION	X(4000)
	e		CONTENTS	CLOB

GF25 JAVADOCNX`t@C
			VALUENAME	X(30)
	Tv		DESCRIPTION	X(4000)
	e			CONTENTS	CLOB
	`Tv	FORM_SAMPLE	CLOB

@̃f[^XgAEvt@X쐬܂B


EXEC CTX_DDL.DROP_PREFERENCE('GF23_TXT');
EXEC CTX_DDL.DROP_PREFERENCE('GF24_TXT');
EXEC CTX_DDL.DROP_PREFERENCE('GF25_TXT');

BEGIN
	CTX_DDL.CREATE_PREFERENCE('GF23_TXT', 'MULTI_COLUMN_DATASTORE');
	CTX_DDL.SET_ATTRIBUTE('GF23_TXT', 'COLUMNS', 'DESCRIPTION, CONTENTS, FORM_SAMPLE');
END;

BEGIN
	CTX_DDL.CREATE_PREFERENCE('GF24_TXT', 'MULTI_COLUMN_DATASTORE');
	CTX_DDL.SET_ATTRIBUTE('GF24_TXT', 'COLUMNS', 'DESCRIPTION, CONTENTS');
END;

BEGIN
	CTX_DDL.CREATE_PREFERENCE('GF25_TXT', 'MULTI_COLUMN_DATASTORE');
	CTX_DDL.SET_ATTRIBUTE('GF25_TXT', 'COLUMNS', 'VALUENAME, DESCRIPTION, CONTENTS, FORM_SAMPLE');
END;


A.CfbNX̍쐬B
  CTXSYS.CONTEXT ŁAقǂ́ADATASTORE w肵܂B

--  CTX_DDL.CREATE_PREFERENCE('MY_MULTI','MULTI_COLUMN_DATASTORE');
--  CTX_DDL.SET_ATTRIBUTE('MY_MULTI', 'COLUMNS','foo,bar');

  ̃f[^XgÁAfoo񂨂bar̓etFb`āAbartB^A
  hLĝ悤ɍ\܂B
	<FOO>
	foo contents
	</FOO>
	<BAR>
	bar filtered contents (probably originally HTML)
	</BAR>


--CREATE INDEX GF23_TXT_IDX ON GF23(FGJ)
--	INDEXTYPE IS CTXSYS.CONTEXT
--	PARAMETERS ('DATASTORE GF23_TXT');
--
--CREATE INDEX GF24_TXT_IDX ON GF24(FGJ)
--	INDEXTYPE IS CTXSYS.CONTEXT
--	PARAMETERS ('DATASTORE GF24_TXT');
--
--CREATE INDEX GF25_TXT_IDX ON GF25(FGJ)
--	INDEXTYPE IS CTXSYS.CONTEXT
--	PARAMETERS ('DATASTORE GF25_TXT');


C.{pڸǉ܂B
  JAPANESE_LEXER  JAPANESE_VGRAM_LEXER ܂AJAPANESE_LEXER gp܂B
  ́A[hɕϊ邽߂ɁAfBNViQƂ܂B
  g[NŒ蕶Ƃɐ؂o JAPANESE_VGRAM_LEXER ƔrāA
  ^̍̐A⍇Ԃ̒ZkA[hEg[N̐ɂ⍇x̌ Ƃ
  _܂Atɗv鎞Ԃ́AJAPANESE_VGRAM_LEXERgpꍇ蒷Ȃ܂B

BEGIN
	CTX_DDL.CREATE_PREFERENCE('JPN_LX','JAPANESE_LEXER');
END;

   MULTI_COLUMN_DATASTORE ̃CfbNX́A_~[̃Jpӂ炵B
		Oracle Textt@X 11g [X1i11.1jE05789-02
		2.2.2.1 tDML
			tɂ́ACREATE INDEXŎw肷_~[쐬Kv܂B
			_~[̓éA̗񖼂񑮐Ŏw肳ĂȂAzhLg̈ꕔɂ͂Ȃ܂B
			́A_~[̍XVɂ̂ݓ܂BKvɉāAύXe`d邽߂
			gK[쐬ł܂B

   ǂȂ̂ŁAƂ肠 FGJ ̎JɃCfbNXw肵Ă݂܂B

DROP INDEX GF23_TXT_IDX;
DROP INDEX GF24_TXT_IDX;
DROP INDEX GF25_TXT_IDX;

CREATE INDEX GF23_TXT_IDX ON GF23 (FGJ)
	INDEXTYPE IS CTXSYS.CONTEXT
	PARAMETERS ('DATASTORE GF23_TXT LEXER JPN_LX');

CREATE INDEX GF24_TXT_IDX ON GF24(FGJ)
	INDEXTYPE IS CTXSYS.CONTEXT
	PARAMETERS ('DATASTORE GF24_TXT LEXER JPN_LX');

CREATE INDEX GF25_TXT_IDX ON GF25(FGJ)
	INDEXTYPE IS CTXSYS.CONTEXT
	PARAMETERS ('DATASTORE GF25_TXT LEXER JPN_LX');


DSp̃g[NQƂłBGF70_PATH_IDX ͂CfbNXw肵܂B
select count(*) from DR$GF23_TXT_IDX$I ;
select count(*) from DR$GF24_TXT_IDX$I ;
select count(*) from DR$GF25_TXT_IDX$I ;
SELECT TOKEN_TEXT FROM DR$GF23_TXT_IDX$I ORDER BY TOKEN_TEXT;


EĂ݂܂B
SELECT * FROM GF23 WHERE CONTAINS (FGJ, 'IN') > 0
	and verno = (select max(verno) from GF23);


SELECT * FROM GF24 WHERE CONTAINS (FGJ, 'ftHg') > 0
	and verno = (select max(verno) from GF24);


SELECT * FROM GF25 WHERE CONTAINS (FGJ, 'Reader') > 0
	and verno = (select max(verno) from GF25);

=====================================================
eLXg̓
EXEC CTX_DDL.SYNC_INDEX( 'GF23_TXT_IDX' );

eLXg̃eiX
EXEC CTX_DDL.OPTIMIZE_INDEX( 'GF23_TXT_IDX','FAST' );

폜ĊɌΏە\ɑ݂ĂȂg[N폜
EXEC CTX_DDL.OPTIMIZE_INDEX( 'GF23_TXT_IDX','FULL' );

=====================================================
FSNIPPET
  hLg̗p쐬ɂ́ACTX_DOC.SNIPPETvV[Wgp܂B
  pƂ́A⍇Ƃ̑ÕeLXg܂ރeLXg̒fЁitOgjłB
  ̗ṕA}[NAbvꂽ⍇L[[hÕeLXgƈꏏɖ߂߁A
  tL[[hiKWICjƂĂmĂA[U[͖⍇L[[h𕶖ŕ]ł܂B

SELECT UNIQ FROM GF23 WHERE CONTAINS (FGJ, 'IN') > 0
and verno = (select max(verno) from GF23)
ʁAUNIQ = 43733  SNIPPET ߂B
select CTX_DOC.SNIPPET('GF23_TXT_IDX','43733','IN') from dual

ۂɂ́AvC}L[ JOIN 邱ƂŁAʂ p
oƂł܂B

select CTX_DOC.SNIPPET('GF23_TXT_IDX',UNIQ,'IN')
	from GF23
	WHERE CONTAINS (FGJ, 'IN') > 0
	and verno = (select max(verno) from GF23)


XRA߂ɂ́ASCOREZqw肵܂B
tɕ\΁AXRA̍ɕ\ł܂B

select SCORE(1),CTX_DOC.SNIPPET('GF23_TXT_IDX',UNIQ,'IN')
	from GF23
	WHERE CONTAINS (FGJ, 'IN',1) > 0
	and verno = (select max(verno) from GF23)
	ORDER BY SCORE(1) DESC ;

\iɂ́A⍇ŁAROWNUM g܂B
i荞łASNIPPET \܂B

select SCR,CTX_DOC.SNIPPET('GF23_TXT_IDX',UNIQ,'IN') as TXT
from (
	select SCORE(1) as SCR,UNIQ
		from GF23
		WHERE CONTAINS (FGJ, 'IN',1) > 0
		and verno = (select max(verno) from GF23)
		ORDER BY SCORE(1) DESC
)
where rownum < 11


