Does anyone have examples of integrating Haystack/Solr with Django?
-
19-09-2019 - |
Question
Note: This question originally applied to Xapian, but due to cross-platform issues and poor understanding of Xapian I (our team) chose Solr instead.
I'm looking for snippets, tricks, tips, links, and anything to watch out for (gotchas). My technology stack includes:
MySQL 5.1(Not really pertinent)- Red Hat and Windows configurations with final deployment to Linux
- Development primarily done on windows machines on my team
No PHP or Java support in our configurations, ergo no Solr or Django-SphinxWent with Java after all!
Thank you all for the help and insight!
Solution
A few notes and resources. My advice is mostly related to Haystack in general since I don't have experience with Xapian as a backend.
- Installing Xapian (from the Haystack docs) - note that Haystack doesn't support Xapian on its own: http://haystacksearch.org/docs/installing_search_engines.html#xapian
- It may be helpful to use Whoosh during development or for testing certain things, but keep in mind that it doesn't support all the features Xapian does. Haystack does a good job of failing gracefully (a warning in your console) if you try to use Whoosh with a feature it doesn't support, so switching between them is painless: http://haystacksearch.org/docs/installing_search_engines.html#whoosh
A snippet from my own code of switching between Whoosh and Solr easily:
# Haystack search settings HAYSTACK_SITECONF = 'project.search_sites' HAYSTACK_INCLUDE_SPELLING = True # Haystack backend settings HAYSTACK_SEARCH_ENGINE = 'solr' # Switch this to 'whoosh' to use that backend instead if DEBUG: HAYSTACK_SOLR_URL = 'solr.development.url' else: HAYSTACK_SOLR_URL = 'solr.production.url' HAYSTACK_WHOOSH_PATH = os.path.join(PROJECT_ROOT, 'search_index', 'whoosh')
- As far as I'm aware your choice of database doesn't make a difference as long as Django supports it since Haystack uses the ORM.
- If you run into any trouble, Haystack's developer (Daniel Lindsley) is incredibly helpful and quick to respond. You can get help from him and others in the django-haystack Google group or the #haystack IRC channel (that is, if you don't find an answer in the official docs).
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow