X-Git-Url: https://git.mdrn.pl/wolnelektury.git/blobdiff_plain/38f324dec64ba8adffcc795095023557b8a7a39c..5f472f9710d81657a3aa6e3a170ce123e1ac3099:/apps/search/management/commands/reindex.py?ds=sidebyside diff --git a/apps/search/management/commands/reindex.py b/apps/search/management/commands/reindex.py index 890110238..2d2000bb9 100755 --- a/apps/search/management/commands/reindex.py +++ b/apps/search/management/commands/reindex.py @@ -7,27 +7,33 @@ class Command(BaseCommand): option_list = BaseCommand.option_list + ( make_option('-n', '--book-id', action='store_true', dest='book_id', default=False, - help='book id'), + help='book id instead of slugs'), + make_option('-t', '--just-tags', action='store_true', dest='just_tags', default=False, + help='just reindex tags'), ) def handle(self, *args, **opts): from catalogue.models import Book import search - idx = search.ReusableIndex() - idx.open() + idx = search.Index() + + if not opts['just_tags']: + if args: + books = [] + for a in args: + if opts['book_id']: + books += Book.objects.filter(id=int(a)).all() + else: + books += Book.objects.filter(slug=a).all() + else: + books = Book.objects.all() - if args: - books = [] - for a in args: - if opts['book_id']: - books += Book.objects.filter(id=int(a)).all() - else: - books += Book.objects.filter(slug=a).all() - else: - books = Book.objects.all() - - for b in books: - print b.title - idx.index_book(b) + try: + for b in books: + print b.title + idx.index_book(b) + idx.index.commit() + except: + idx.index.rollback() print 'Reindexing tags.' idx.index_tags() - idx.close() + idx.index.commit()