btmeacham Posted August 13, 2013 Posted August 13, 2013 I'm working on a database where users can search by a person's name. Many of the names in the database have accents and other diacritical marks which it's important for us to keep and display properly. Unfortunately, if a user searches by typing in "Francois," the record for "François" will not be returned. Since it's a pain (at least on a Windows machine) to find and use those special characters, or the user might not even know that André actually has an "é" at the end of his name, I'm looking for a way to ensure that a search for a name that includes a character without a diacritic will find the name that has a character with the diacritic. I've seen a number of inquires about the need to strip letters of their diacritical marks using a substitute function, but I haven't come across a way to incorporate this into a setup where the name displays with the proper diacritic but appears, when being searched, as though it doesn't have any accent or other mark. I appreciate any help with this problem.
Wim Decorte Posted August 13, 2013 Posted August 13, 2013 You could have an auto-enter field that "shadows" the real entry field and substitutes those special characters with their regular counterparts. You can then use a custom menu to hijack the user's find and perform it on the shadow field
btmeacham Posted August 13, 2013 Author Posted August 13, 2013 Thanks for the suggestion. I'll look into it and see what I can come up with.
comment Posted August 13, 2013 Posted August 13, 2013 Unfortunately, if a user searches by typing in "Francois," the record for "François" will not be returned. That will happen if you have selected Unicode as the field's indexing language. Just change it to Default (or English or French) and it will behave the way you want. For more, see: http://www.filemaker.com/12help/html/non_toc.46.1.html#1039132
btmeacham Posted August 14, 2013 Author Posted August 14, 2013 Great, thanks! That's an even easier fix... I appreciate your help.
btmeacham Posted August 19, 2013 Author Posted August 19, 2013 I'm returning to this topic because I can't seem to reproduce what I thought was a successful result from comment's advice. In looking at the information at the link provided, it looks like using Default storage does the opposite of what I'm looking for: it does not return a record with an accented name in it if the accent is not entered in the search. As it states, If you use the Default language setting to index the same records, a search for the word “demande” results in the set of records that contain “demande,” but not “demandé.” I'm looking for the exact opposite functionality, where someone who doesn't know where the accents fall can search for a person and get the correct result despite not using the correct accents. I'll revisit Wim's suggestion to see if I can get that to work. Thanks.
btmeacham Posted August 19, 2013 Author Posted August 19, 2013 Aaand solved again. So, despite what the documentation on filemaker.com indicates, comment was correct and using the Default setting results in searches that find words with accents even when accents aren't entered in the search. I was running into a problem where the search wasn't working correctly in a dynamic portal filter situation, so I also used Wim's suggestion to create a shadow field with every possible diacritic stripped out, and ran the filter through that field instead, with the user none the wiser. If I could make this solved twice, I would. Thanks.
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now