docs: def make_parser(default_field='text', plugins=DEFAULT_PLUGINS, schema=None,
                  int_fields=None, yesno_fields=None, aliases=None):
      '''Helper function to create a QueryParser.
      
      Parameters:
          default_field: the default field to search against for non-field
                          queries
          plugins: a list of plugins to use when parsing
          schema: If provided, a schema to check fieldnames against. If not
                  provided, any query of the form "foo:bar" will yield searches
                  against the "foo" field; if provided and "foo" is not a field,
                  then the search will look for "foo bar" in the default_field.
                  NOTE: If provided, search queries MUST use unicode
          int_fields: A list of fields that expect integer values from
                      CloudSearch
          yesno_fields: A list of fields to convert "yes" and "no" queries to
                        boolean 1 / 0 searches
          aliases: A dictionary of aliases to use for the AliasPlugin
      
      '''
      parser = whoosh.qparser.default.QueryParser(default_field, schema,
                                                  plugins=plugins)
      parser_parse = parser.parse
      def parse(text, *args, **kwargs):
          assert isinstance(text, unicode), 'Cannot parse non-unicode objects (%r)' % text
          return parser_parse(text, *args, **kwargs)
      parser.parse = parse
      parser.parse.__doc__ = parser_parse.__doc__
      if int_fields:
          parser.add_plugin(IntNodePlugin(int_fields))
      if yesno_fields:
          parser.add_plugin(YesNoPlugin(yesno_fields))
      if aliases:
          parser.add_plugin(FieldAliasPlugin(aliases))
      return parser