> we will try that and post the results here but it seems we > may get problem with highlight function.
No highlighting works fine with that. I am also using similar filter for turkish chars. I replace ç with c, ş with s and so on at index time. Another (easier but less efficient ) way to implement this filter is to extend org.apache.lucene.index.memory.SynonymMap and override public String[] getSynonyms(String word) method. In this case your getSynonyms method will return either new String[0] or new String[1]. Constructor will invoke super(null); without problems. After that you can use your custom SynonymMap in your Lucene's SynonymTokenFilter constructor. (without modifying SynonymTokenFilter) stream = new SynonymTokenFilter(stream, new MySynonymMap(), Integer.MAX_VALUE); Because SynonymTokenFilter invokes only getSynonyms method of SynonymMap.