for pdtag in PDCounterBook.objects.all():
doc = Document()
doc.add(NumericField("tag_id", Field.Store.YES, True).setIntValue(int(pdtag.id)))
- print pdtag.title
doc.add(Field("tag_name", pdtag.title, Field.Store.NO, Field.Index.ANALYZED))
doc.add(Field("tag_name_pl", pdtag.title, Field.Store.NO, Field.Index.ANALYZED))
doc.add(Field("tag_category", 'pd_book', Field.Store.YES, Field.Index.NOT_ANALYZED))
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
idx = search.ReusableIndex()
idx.open()
- 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)
+ 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()
+
+ for b in books:
+ print b.title
+ idx.index_book(b)
print 'Reindexing tags.'
idx.index_tags()
idx.close()