One possibility is to use MySQL. By default it indexes things so that a, á, and À are the same thing. There are some gotchas though: you have to make sure that it's using an appropriate character set for the languages you're using. (UTF-8 is a good choice.) There's not a good similar solution for PostgreSQL. While it is possible to write a function, and create an index on that function, I haven't found a way of searching on that index in Django. If anyone knows of a way to do it, I'd love to here it.
On Jun 1, 2012, at 11:41 AM, Kurtis Mullins wrote:
Maybe you could just build a simple index? It'd basically be a set of keywords, each with a set of matching books.
So in your example, you'd have two keywords:
hola (with accent) -> book1, book2, etc..
hola (without accent) -> (same as previous)
And then just write some sort of functionality to run through your data and index it to a table. I can't vouch that this is the best approach - but I think it'd at least solve the problem.
On Fri, Jun 1, 2012 at 1:03 PM, Joni Bekenstein <jonibekenstein@gmail.com> wrote:I need to do a simple search ignoring some characters with accents. The idea would be that "hola" matches the search term "holá".What I'm currently doing is adding a CharField to my model to store the searchable term. For example:class Book(models.Model):title = models.CharField(max_length=100)searchable_title = models.CharField(max_length=100)When I save a Book I'll replace the accented characters in title with their non-accented counterparts and store the result in searchable_title. The, I'll also do the same thing with the search term before actually doing the query.I don't like this approach because if I need to add more searchable fields things start getting noisy in my models.Any ideas?--
You received this message because you are subscribed to the Google Groups "Django users" group.
To view this discussion on the web visit https://groups.google.com/d/msg/django-users/-/tdIUkptWpZgJ.
To post to this group, send email to django-users@googlegroups.com.
To unsubscribe from this group, send email to django-users+unsubscribe@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/django-users?hl=en.
--
You received this message because you are subscribed to the Google Groups "Django users" group.
To post to this group, send email to django-users@googlegroups.com.
To unsubscribe from this group, send email to django-users+unsubscribe@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/django-users?hl=en.
Peter of the Norse
No comments:
Post a Comment