Generator zapytań dla Solra

Ostatnie dni spędzam na nauce Solra i rozwijaniu Djangowego kodu wykorzystującego właśnie z ten indekser. Ponieważ tworzenie zapytań może być naprawdę męczące i generować wiele błędów, napisałem w wolnym czasie parę linijek które powinny pomóc. API jest oczywiście wzorowane na Django ORM. Komunikacją z Solr zajmuje się moduł pysolr.

Oto przykład zapytania:

q = Query()
q.filter(OR(title='Hello world!', description='Hello world!'), date__lt=dt)
q.exclude(photo=True, video=False)
q[:2]
print q.pprint()

które generuje następujący kod:

((description:"Hello world!") OR (title:"Hello world!")) 
 AND (date:"LESS_THAN(to_sorl_format)") 
 AND (NOT (contains_photo:"true") OR (contains_video:"true"))