[Answer]-Django haystack elasticsearch problems with autocomplete (and queries with Capital letters)

1👍

I think you already got an answer in the haystack forums but just to bring it out here also.

One way to get rid of the Caps problem is to use a custom prepare method in your index class although my haystack somehow handles it by default :S.

def prepare_username_auto(self, obj):
   return obj.username.lower()

This will convert all usernames to lowercase when you run ‘update_index’. Then you can also turn you user inserted search term to lower also which should produce correct results.

To search for a part of the word you need to use:

results = SearchQuerySet().models(SocialProfile).autocomplete(username_auto__startswith=q)
👤timop

Leave a comment