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-Sphinx Went with Java after all!

Thank you all for the help and insight!

Was it helpful?

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.

  1. 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
  2. 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
  3. 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')
    
  4. 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.
  5. 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
scroll top