Whoosh MultifieldParser поиск поля или конкатенация парсера запросов - PullRequest
6 голосов
/ 03 мая 2011

Я пытаюсь использовать whoosh , чтобы добавить функциональность поиска в мой blogapp на appengine, но некоторые вещи я не понимаю.

Blogentries индексируются с помощью title, *Поля 1006 * и status.

Я хотел бы иметь результаты другого типа на общедоступной странице, чем на странице администратора, но без необходимости иметь несколько индексов.

На главной странице я хочу, чтобы посетители могли искать в видимых записях только в полях title и content, а в админе я хочу искать также в черновики записей.

Могу ли я объединить результаты поиска, используя QueryParser, чтобы я мог выполнять поиск по нескольким полям?
Как я могу отфильтровать статус : видимый с MultifieldParser?

РЕДАКТИРОВАТЬ

еще не тестировал, но я получил ответ в рассылке рассылки:

# 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)

1 Ответ

0 голосов
/ 16 июля 2012

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

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

...