Google 애플리케이션에서 색인 생성 및 검색을 위해 Haystack과 Whoosh를 사용하려고합니다. 색인을 다시 작성할 때 다음 결과가 표시됩니다.Django-Haystack + Whoosh - 비어있는 색인 이후 rebuild_index
모든 문서가 제거되었습니다. 백엔드 업데이트 중 : 기본 기본값 : 백엔드 은 다시 빌드 할 필요가 없습니다.
를이 내 경우 Searchindex 클래스 건너 뛰기 :
class BlogIndex(indexes.SearchIndex, indexes.Indexable):
text = indexes.CharField(document=True, use_template=True, template_name="snip_text.txt")
headline = indexes.CharField(model_attr="headline", null=True)
body = indexes.CharField(model_attr="body")
def get_model(self):
return Snip
def index_queryset(self, using=None):
"""Used when the entire index for model is updated."""
return self.get_model().objects.filter(date__lte=timezone.now())
이 (템플릿/검색/색인/MyApp를에 위치 /) 내 blog_text.txt 파일입니다 : 내가 추가
{{ object.headline }}
{{ object.body }}
haystack을 INSTALLED_APPS 및 해당 설정 파일에 저장합니다. 내 DB는 sqlite입니다 (개발 용 ...).
내가 뭘 잘못하고 있니?
감사합니다.
R
이 같은 관리 명령 (당신이 원하는대로 파일 이름 - 예 : my_update_index.py)을 작성
UPDATE
from haystack.management.commands import update_index
class Command(update_index.Command):
pass
가 clear_index 명령에 대한 동일한 작업을 수행합니다.
rebuild_index 명령은 clear_index와 update_index를 호출합니다. 따라서 새 재구성 명령을 만들더라도 작동하지 않습니다 (잘못된 명령을 찾음).
인덱스를 다시 작성하려면 두 명령을 모두 실행하십시오. 그렇지 않으면 update_index 명령을 실행하십시오.
또 하나의주의 사항 : 템플릿 txt 파일의 폴더 이름은 색인하려고하는 모델과 정확히 같아야합니다. (색인 클래스에서 어디에서 썼는지는 중요하지 않습니다.).
물론, 신용 난 당신이 할미새뿐만 아니라 프로젝트에 설치되어 있는지 베팅하고
당신은 절대적으로 옳았습니다. 그러나 나는 두 가지를 시도했지만 여전히 성공하지 못했습니다. 어쩌면 나는 틀린 일을했습니다 ... 나는 import와'class Command (rebuild_index.Command) : pass'를 가지고 blog_rebuild.py라는 파일을 만듭니다. – Rani
'update_index'에 대해서도 똑같이해야합니다 - 이것은 Haystack의'rebuild_index '. – solarissmoke
그것은 작동합니다! 내 blog_rebuild는 여전히 아무것도하지 않지만 blog_update_index.py는 작동합니다. 괜찮습니까? – Rani