Skip to content

Stack selection Guidelines

Geoffroy Noël edited this page May 18, 2019 · 8 revisions

Which Search Engine?

For large dataset or non-basic search

Recommended to use Haystack + Solr 6 instead of ElasticSearch because django-haystack doesn't support ES-5+. Haystack doesn't yet produce schema compatibel with Solr 7.

For simple search on less than 100K items

Use Wagtail Search with Postgresql backend or ES. Avoid using both ES and Solr in the same project and be aware that Wagtail search is quite limited.

Wagtail search with db or postgresql backend doesn't work well with multi-valued facets. E.g.

res = MyModel.objects.filter(myfield='v1').search('test')
f = res.facet('myfield')

f will only contain 'v1' even if records in the results have also other values for myfield.

Wagtail search over ES does not provide control over the facets, it will returns the 10 most frequent values for each facet (which is a ES5 default) and there is no way to change that apart from re-writing part of the ES backend.