How can I resolve the wildcard_maxterm
problem in Oracle 10g?
My index creation syntax is:
begin
ctx_ddl.drop_preference('SUBSTRING_PREF');
end;
/
begin
ctx_ddl.create_preference('SUBSTRING_PREF', 'BASIC_WORDLIST');
ctx_ddl.set_attribute('SUBSTRING_PREF', 'SUBSTRING_INDEX','TRUE');
end;
/
begin
ctx_ddl.drop_preference('bus_obj1_lexer');
end;
/
begin
ctx_ddl.create_preference('bus_obj1_lexer','BASIC_LEXER');
ctx_ddl.set_attribute('bus_obj1_lexer', 'base_letter', 'YES');
ctx_ddl.set_attribute('bus_obj1_lexer', 'mixed_case', 'YES' );
ctx_ddl.set_attribute('bus_obj1_lexer','printjoins', ';,@_');
ctx_ddl.set_attribute('bus_obj1_lexer','skipjoins', '-');
end;
/
create index BUS_OBJ_FTS_Name on BUSINESS_OBJECTS1(name)
indextype is ctxsys.context
parameters ('wordlist SUBSTRING_PREF
MEMORY 128M
DATASTORE CTXSYS.DEFAULT_DATASTORE
SECTION GROUP CTXSYS.AUTO_SECTION_GROUP
STOPLIST CTXSYS.EMPTY_STOPLIST
LEXER bus_obj1_lexer
SYNC (ON COMMIT)');
And my query is:
select * from BUSINESS_OBJECTS1 where contains(name,'%WIN%')>0 and rownum<=100;
There are 15 million rows in that table, and more than 50000 rows match that query. I have set wildcard_maxterm=50000
and default=20000
but I'm still getting this error:
DRG-51030: wildcard query expansion resulted in too many terms.
Can anybody hep me how to solve this error?