Я пытаюсь использовать whoosh, чтобы добавить функцию поиска в свое приложение для блога на appengine, но кое-что не понимаю.
Записи блога индексируются с помощью полей title
, content
и status
.
Я хотел бы иметь разные типы результатов на общедоступной странице, а не на странице администратора, но без необходимости иметь несколько индексов.
На главной странице я хочу, чтобы посетители могли выполнять поиск в видимых записях только в полях title
и content
, а в панели администратора я хочу также искать в черновиках записей.
Могу ли я объединить поисковые запросы, используя QueryParser
, чтобы выполнять поиск по нескольким полям?
Как я могу фильтровать по status:visible с помощью MultifieldParser
?
ИЗМЕНИТЬ
еще не проверял, но получил ответ в списке рассылки whoosh:
# Create a parser that will search in title and content
qp = qparser.MultifieldParser(["title", "content"], ix.schema)
# Parse the user query
q = qp.parse(user_query_string)
# If request is not admin, filter on status:visible
filterq = query.Term("status", u"visible") if not is_admin else None
# Get search results
results = searcher.search(q, filter=filterq)