3

I have been reading about Haystack,Whoosh,Xapian,etc. however I didn't really get what they are exactly used for and what is the relationship between them. For example, it is said that

Enable searching on third-party apps without touching that app’s code.

Can some explain to me what these are used for maybe giving a nice link and simple enough to understand for a begginer. thx

Danny Beckett
  • 20,529
  • 24
  • 107
  • 134
Hossein
  • 40,161
  • 57
  • 141
  • 175
  • 4
    Solr/Whoosh/Xapian provide searching capabilities (full-text search, text indexing) for an application, and Haystack is a package that allows you to build search for a django application without caring about which of those engines eventually get used. – wkl Oct 28 '11 at 15:33

1 Answers1

7

Haystack is a different beast from Whoosh/Xapian/etc.:

Haystack provides modular search for Django. It features a unified, familiar API that allows you to plug in different search backends (such as Solr, Whoosh, Xapian, etc.) without having to modify your code.

From the FAQ (emphasis added):

What is Haystack?

Haystack is meant to be a portable interface to a search engine of your choice. Some might call it a search framework, an abstraction layer or what have you. The idea is that you write your search code once and should be able to freely switch between backends as your situation necessitates.

The "search backends" mentioned are search libraries which have their own API. Haystack provides a unified API on top (and independent) of any one specific search library.

Community
  • 1
  • 1
Matt Ball
  • 354,903
  • 100
  • 647
  • 710