Skip to Main Content

Database Software

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

Treat plurals as singular

Catfive LanderJul 30 2008 — edited Dec 11 2008
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?
Comments
Locked Post
New comments cannot be posted to this locked post.
Post Details
Locked on Jan 8 2009
Added on Jul 30 2008
13 comments
4,940 views