Django Haystack'ı bir süredir kullanıyorum ve bu harika! Zaman zaman güncellenmesi gereken (15 ila 30 dakika) veri içeren oldukça ağır bir sitem var. Django Haystack güncelleme endeksi daha hızlı
veriyi güncellemek için çok zaman alırpython manage.py update_index
kullanırken. Bunu hızlandırmanın bir yolu var mı? Mümkünse Ya da belki sadece değiştirilen veri güncelleme ..
Şu anda arka uç ve Django 1.4 olarak Solr ile Django Haystack 1.2.7 kullanıyorum.
Teşekkürler!
DÜZENLEME:
Evet belgelerin bir kısmının okuma çalıştı ama ne gerçekten ihtiyacım indeksleme hızlandırmak için bir yoldur ettik. Belki de tümünü güncelleştirmek yerine yalnızca son verileri güncelleyin. get_updated_field
'u buldum ama nasıl kullanacağımı bilmiyorum. Dokümantasyonda neden kullanıldığını ancak gerçek örneklerin gösterilmediğini belirtmiştir.
DÜZENLEME 2:
start = DateTimeField(model_attr='start', null=True, faceted=True, --HERE?--)
DÜZENLEME 3:
Ok i çözüm feryat uyguladık ama (45000 verilerle) rebuild_index çalıştığımızda neredeyse bilgisayarımı çöktü . Bir hata bekleyen 10 dakika sonra ortaya çıktı:
File "manage.py", line 10, in <module>
execute_from_command_line(sys.argv)
File "/usr/local/lib/python2.7/dist-packages/django/core/management/__init__.py", line 443, in execute_from_command_line
utility.execute()
File "/usr/local/lib/python2.7/dist-packages/django/core/management/__init__.py", line 382, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "/usr/local/lib/python2.7/dist-packages/django/core/management/base.py", line 196, in run_from_argv
self.execute(*args, **options.__dict__)
File "/usr/local/lib/python2.7/dist-packages/django/core/management/base.py", line 232, in execute
output = self.handle(*args, **options)
File "/usr/local/lib/python2.7/dist-packages/haystack/management/commands/rebuild_index.py", line 16, in handle
call_command('update_index', **options)
File "/usr/local/lib/python2.7/dist-packages/django/core/management/__init__.py", line 150, in call_command
return klass.execute(*args, **defaults)
File "/usr/local/lib/python2.7/dist-packages/django/core/management/base.py", line 232, in execute
output = self.handle(*args, **options)
File "/usr/local/lib/python2.7/dist-packages/haystack/management/commands/update_index.py", line 193, in handle
return super(Command, self).handle(*apps, **options)
File "/usr/local/lib/python2.7/dist-packages/django/core/management/base.py", line 304, in handle
app_output = self.handle_app(app, **options)
File "/usr/local/lib/python2.7/dist-packages/haystack/management/commands/update_index.py", line 229, in handle_app
do_update(index, qs, start, end, total, self.verbosity)
File "/usr/local/lib/python2.7/dist-packages/haystack/management/commands/update_index.py", line 109, in do_update
index.backend.update(index, current_qs)
File "/usr/local/lib/python2.7/dist-packages/haystack/backends/solr_backend.py", line 73, in update
self.conn.add(docs, commit=commit, boost=index.get_field_weights())
File "/usr/local/lib/python2.7/dist-packages/pysolr.py", line 686, in add
m = ET.tostring(message, encoding='utf-8')
File "/usr/lib/python2.7/xml/etree/ElementTree.py", line 1127, in tostring
ElementTree(element).write(file, encoding, method=method)
File "/usr/lib/python2.7/xml/etree/ElementTree.py", line 821, in write
serialize(write, self._root, encoding, qnames, namespaces)
File "/usr/lib/python2.7/xml/etree/ElementTree.py", line 940, in _serialize_xml
_serialize_xml(write, e, encoding, qnames, None)
File "/usr/lib/python2.7/xml/etree/ElementTree.py", line 940, in _serialize_xml
_serialize_xml(write, e, encoding, qnames, None)
File "/usr/lib/python2.7/xml/etree/ElementTree.py", line 915, in _serialize_xml
write("<" + tag)
MemoryError
En İyi Uygulamalar belgesinde bazı şeyleri denediniz mi? http://django-haystack.readthedocs.org/en/latest/best_practices.html#ref-best-practices – Spacedman
Ben Solr arka uç yüzden üzgünüm, orada size yardımcı olamaz kullanılmaz ettik. –