IFind french and stemming
Hi,
I created with Studio a persistent class with the following field and index:
Property DescriptionDemande As %String(MAXLEN = "");
Index IDXBASDescriptionDemande On (DescriptionDemande) As %iFind.Index.Basic(INDEXOPTION = 1, LANGUAGE = "fr", LOWER = 1);
INDEXOPTION is set to 1 for activating stemming. I'm indexing french documents. I have set lower to 1 because I want to do non case sensitive search.
I inserted a single french word "élément" in the field DescriptionDemande for testing purposes using this query: insert into my_table(DescriptionDemande) values(' élément')
the query SELECT * FROM my_table WHERE %ID %FIND search_index(IDXBASDescriptionDemande,'élément',0) returns one row and that is fine.
But:
- The query SELECT * FROM my_table WHERE %ID %FIND search_index(IDXBASDescriptionDemande,'éléments',0) returns nothing. If stemming was activated the ending 's' should be ignored and the query should return one row.
- The query SELECT * FROM my_table WHERE %ID %FIND search_index(IDXBASDescriptionDemande,'Elément',0) returns nothing, despite that Elément and élément in french are the same word (the accent on the capital letters are not commonly used)
Why the stemming is not working ? is there something missing in my index configuration.
What can I do tell iFind not to take accents into consideration, without modifying my own text of course.
Regards,
Jack Abdo.
Hello Jack,
Your query should be:
SELECT * FROM my_table WHERE %ID %FIND search_index(IDXBASDescriptionDemande,'éléments',1)
To get stemming to work.
Hi Jack,
Sorry, lost half the email. The second problem is that you are searching for:
'Elément'
instead of
'Élément'
which iFind reports as different words (indeed, they do NOT match).
Cheers!
Kyle