I have a sinking feeling I know the answer to this one, but I hope I'm wrong...
I want to ask if there is a way to get Oracle Text to regard plural and singular forms of a word as equivalent that does NOT involve creating synonyms in a thesaurus (because I don't fancy re-writing a dictionary, basically!).
I have no problem using a thesaurus to make roof=rooves or mouse=mice, but I'm looking for a way to generically allow pencil=pencils or paper=papers. Right now, they're not:
SQL> create table texttst (col1 varchar2(20));
Table created.
SQL> insert into texttst values ('pencil');
1 row created.
SQL> insert into texttst values ('pencils');
1 row created.
SQL> insert into texttst values ('paper');
1 row created.
SQL> insert into texttst values ('papers');
1 row created.
SQL> commit;
Commit complete.
SQL> create index txtidx on texttst(col1) indextype is ctxsys.context;
Index created.
SQL> select count(*) from texttst where contains(col1,'pencil')>0;
COUNT(*)
----------
1
I want the answer to that last query to be 2!
I am aware I can do this:
SQL> select count(*) from texttst where contains(col1,'$pencil')>0;
COUNT(*)
----------
2
But the use of 'fuzzy' searches goes much wider than simply seeing singular as the same as plural forms of a word, and that's not something I particularly want to do if I can help it.
Is there some switch that says "plural=singular", please?