fnp
/
wolnelektury.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
add committing, too
[wolnelektury.git]
/
apps
/
search
/
management
/
commands
/
reindex.py
diff --git
a/apps/search/management/commands/reindex.py
b/apps/search/management/commands/reindex.py
index
8901102
..
2d2000b
100755
(executable)
--- 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,
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
)
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()
print 'Reindexing tags.'
idx.index_tags()
- idx.
close
()
+ idx.
index.commit
()