So far I haven't noticed any problems, and aside from the initial part of the learning curve, where I had to grasp the basic functioning of Haystack, the implementation was super simple (albeit very basic). I set the search_index in my localsite app, but you can set it in any app. You'll notice that I am not including variations in the search results.
/localsite/search_index.py
from haystack.indexes import *
from haystack import site
from product.models import Product
class ProductIndex(SearchIndex):
text = CharField(document=True, use_template=True)
def index_queryset(self):
return Product.objects.active(variations=False)
site.register(Product, ProductIndex)
Then you need a template to specify what parts of the Product model to search in. I have satchmo_ext.brand installed, which is the reason why I needed to extend the search capabilities of Satchmo in the first place, so I included it in the text document.
/templates/search/indexes/product/
{% for b in obj
ect.brand_set.active %} {{ b.translation.name }}{% endfor %}{{ object.slug }}{{ object.translated_name }}{{ object.translated_short_description }}{{ object.translated_description }}{% with options=object.configurableproduct.get_valid_options %} {% for opt in options %} {{ opt }} {% endfor %}{% endwith %}One of the reasons that I believe it is a good idea to use Haystack rather than the Satchmo search functions is the ample documentation that is provided for implementing Haystack. My implementation is pretty much as basic as you can get, but you could do so much with it and is scalable.