view MoinMoin/search/__init__.py @ 4970:43e7b40912ac

Xapian2009: The MoinMoin.search.builtin.Search class was split to BaseSearch, MoinSearch and XapianSearch. Search using moin should work, xapian search is broken!
author Dmitrijs Milajevs <dimazest@gmail.com>
date Fri, 31 Jul 2009 16:09:20 +0200
parents af09c1b3a153
children f1d1d8105d52
line wrap: on
line source
# -*- coding: iso-8859-1 -*-
"""
    MoinMoin - search engine

    @copyright: 2005 MoinMoin:FlorianFesti,
                2005 MoinMoin:NirSoffer,
                2005 MoinMoin:AlexanderSchremmer,
                2006 MoinMoin:ThomasWaldmann,
                2006 MoinMoin:FranzPletz
    @license: GNU GPL, see COPYING for details
"""

from MoinMoin import log
logging = log.getLogger(__name__)

from MoinMoin.search.queryparser import QueryParser, QueryError
from MoinMoin.search.builtin import MoinSearch, XapianSearch

def searchPages(request, query, sort='weight', mtime=None, historysearch=None, **kw):
    """ Search the text of all pages for query.

    @param request: current request
    @param query: the expression (string or query objects) we want to search for
    @keyword sort: sorting of the search results, either 'weight' or 'page_name'
    @keyword mtime: only items modified since mtime
    @keyword historysearch: include older revisions of items in search
    @keyword titlesearch: treat all terms as title searches (passed to qp)
    @keyword case: do case sensitive search (passed to qp)
    @keyword regex: treat all terms as regular expression (passed to qp)
    @rtype: SearchResults instance
    @return: search results
    """
    if isinstance(query, str) or isinstance(query, unicode):
        query = QueryParser(**kw).parse_query(query)

    if request.cfg.xapian_search:
        searcher = XapianSearch
    else:
        searcher = MoinSearch

    return searcher(request, query, sort, mtime=mtime, historysearch=historysearch).run()