поиск по полю whoosh MultifieldParser или объединение парсеров запросов

Я пытаюсь использовать 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)

person aschmid00    schedule 02.05.2011    source источник


Ответы (1)


Я знаю, что это не совсем ответ, но Google добавил API полнотекстового поиска, похожий на whoosh. Возможно, вам стоит попробовать.

https://developers.google.com/appengine/docs/python/search/overview

person Paolo Casciello    schedule 16.07.2012
comment
спасибо за ответ... я задал этот вопрос больше года назад :) с тех пор много чего произошло. с тех пор я пробовал разные подходы. сейчас у меня есть внешний сервер с elasticsearch. - person aschmid00; 16.07.2012
comment
спс извини!!! он появился первым в переполнении стека, и я никогда не замечал дату! :) - person Paolo Casciello; 17.07.2012