2

We have a site where some entry titles are company names including a German umlaut. When we perform a search using Low Search and type in the name 'without' the umlaut (as you would be most likely to do if you have a english language keyboard) then no results are returned.

However when performing the same search from 'within' the ExpressionEngine control panel channel entries listing screen searching without the umlaut does return results.

Is there some fundamental difference between how internal entry searches are performed in EE and how Low Search works and is there any workaround we can implement to enable the return of results when we do perform a search on the front end minus the umlaut?

1 Answer 1

4

Keyword searches with Low Search are diacritic insensitive. That is to say, both the collection index and given search terms go through an algorithm to strip them out or replace them with unaccented equivalents. LS uses EE's native $foreign_characters array for this, located in /system/expressionengine/config/foreign_chars.php.

For example, take the word München. LS will change this, using the foreign_chars map, to muenchen. That means if you use the search term "münchen", LS will transform the search term to "muenchen" too. However, if you search for "munchen", LS will not change the terms since that doesn't contain diacritics.

So, it's best to change the values in the foreign_chars.php file to suit your needs. You'll need to update your indexes if you do.

4
  • As ever with your add-ons you've gone the extra mile. Thanks so much for the detailed response Low. :) Oct 15, 2014 at 8:43
  • One query... I guess in reality German speaking users might search for the spelling with the umlaut and also the transformed version 'muenchen' too, but non German speaking users will more likely just search for Munchen. It feels like it should also be indexed with that spelling to cover all bases? I'm guessing that to achieve this I need to do some 'post save' processing to strip foreign characters from a title (in this case) and save that to a search keywords custom field? Oct 15, 2014 at 8:46
  • Yep, this is synonym territory, so your best bet is a dedicated custom field for alternative spellings. Whether you automate that or manually do it, is up to you.
    – Low
    Oct 15, 2014 at 8:51
  • I've modified the foreign_chars.php file as suggested for now, I'm sure that will suffice. Thanks again for your help with this. :) Oct 15, 2014 at 8:52

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.