BEGIN
/**
LEXER
*/
ctx_ddl.create_preference('INVENTAR_DEV_LEXER','BASIC_LEXER');
ctx_ddl.set_attribute('INVENTAR_DEV_LEXER', 'numgroup',',');
ctx_ddl.set_attribute('INVENTAR_DEV_LEXER', 'numjoin','.');
ctx_ddl.set_attribute('INVENTAR_DEV_LEXER', 'printjoins','.-_%:;/,()?!*+');
/**
WORDLIST
*/
ctx_ddl.create_preference('INV_DEV_WORDLIST', 'BASIC_WORDLIST');
ctx_ddl.set_attribute('INV_DEV_WORDLIST','FUZZY_MATCH','GENERIC');
ctx_ddl.set_attribute('INV_DEV_WORDLIST','FUZZY_SCORE','70');
ctx_ddl.set_attribute('INV_DEV_WORDLIST','FUZZY_NUMRESULTS','10');
ctx_ddl.set_attribute('INV_DEV_WORDLIST','SUBSTRING_INDEX','FALSE');
ctx_ddl.set_attribute('INV_DEV_WORDLIST','STEMMER','NULL');
ctx_ddl.set_attribute('INV_DEV_WORDLIST','PREFIX_INDEX','TRUE');
ctx_ddl.set_attribute('INV_DEV_WORDLIST','PREFIX_MIN_LENGTH',3);
ctx_ddl.set_attribute('INV_DEV_WORDLIST','PREFIX_MAX_LENGTH',7);
END;
Statement processed.
CREATE TABLE inv_dev (inv_id VARCHAR2(16), name VARCHAR2(255))
Table created.
INSERT INTO inv_dev VALUES (1, 'lawnmower 1')
1 row(s) inserted.
INSERT INTO inv_dev VALUES (2, 'lawnmower 2')
1 row(s) inserted.
CREATE INDEX inv_dev_idx ON inv_dev(name)
INDEXTYPE IS CTXSYS.CONTEXT
PARAMETERS (
'DATASTORE CTXSYS.DEFAULT_DATASTORE FILTER CTXSYS.NULL_FILTER LEXER INVENTAR_DEV_LEXER WORDLIST INV_DEV_WORDLIST STOPLIST CTXSYS.EMPTY_STOPLIST'
)
Index created.
SELECT /*+ FIRST_ROWS(150) */
SCORE(1),
XMLELEMENT("object",
XMLForest(i.inv_id "inv_id", i.name "name")
).getStringVal()
FROM inv_dev i
WHERE contains(i.name,
'<query>
<textquery grammar="context">
<progression>
<seq>lawn%</seq>
</progression>
</textquery>
<score datatype="FLOAT" algorithm="DEFAULT"/>
<order>
<orderkey> Score DESC </orderkey>
</order>
</query>', 1) > 0
SCORE(1) | XMLELEMENT("OBJECT",XMLFOREST(I.INV_ID"INV_ID",I.NAME"NAME")).GETSTRINGVAL() | 3 | <object><inv_id>1</inv_id><name>lawnmower 1</name></object> | 3 | <object><inv_id>2</inv_id><name>lawnmower 2</name></object> |
---|
SELECT /*+ FIRST_ROWS(150) */
SCORE(1),
XMLELEMENT("object",
XMLForest(i.inv_id "inv_id", i.name "name")
).getStringVal()
FROM inv_dev i
WHERE contains(i.name,
'<query>
<textquery grammar="context">
<progression>
<seq>{lawn}%</seq>
</progression>
</textquery>
<score datatype="FLOAT" algorithm="DEFAULT"/>
</query>', 1) > 0
ORDER BY SCORE(1)
no data found