Я бы порекомендовал Apache SOLR , который построен поверх Lucene. Основное преимущество заключается в том, что он предоставляет простой в использовании API и может возвращать собственный объект Python. Вот пример того, как вызвать его из Python:
params = urllib.urlencode({
"rows": "100",
"fl": "id,name,score,address,city,state,zip",
"wt": "python",
"q": "+name:Foo +city:Boston"
})
request = urllib2.urlopen(urllib2.Request("http://locahost:8983/solr/select", params))
response = ast.literal_eval(request.read())
request.close()
return response["docs"]