##parameters=query={}, REQUEST=None
# $Id: search.py 49965 2006-11-10 00:22:57Z madarche $
"""
"""

from zLOG import LOG, DEBUG, INFO
from Products.ZCTextIndex.ParseTree import ParseError
ParseErrors = (ParseError,)
try:
    from Products.TextIndexNG2.BaseParser import QueryParserError
    ParseErrors += (QueryParserError,)
except ImportError:
    pass


catalog = context.portal_catalog

if REQUEST is not None:
    query.update(REQUEST.form)

for k, v in query.items():
    if not v or same_type(v, []) and not filter(None, v):
        del query[k]

try:
    brains = catalog(**query)
except ParseErrors:
    LOG('CPSDefault.search', INFO, 'got an exception during search %s' % query)
    return []

return brains
