Esempio n. 1
0
 def __init__(
     self,
     request,
     separate_replies=False,
     separate_wildcard_uri_keys=True,
     _replies_limit=200,
 ):
     self.es = request.es
     self.separate_replies = separate_replies
     self._replies_limit = _replies_limit
     # Order matters! The KeyValueMatcher must be run last,
     # after all other modifiers have popped off the params.
     self._modifiers = [
         query.Sorter(),
         query.Limiter(),
         query.DeletedFilter(),
         query.AuthFilter(request),
         query.GroupFilter(),
         query.GroupAuthFilter(request),
         query.UserFilter(),
         query.HiddenFilter(request),
         query.AnyMatcher(),
         query.TagsMatcher(),
         query.UriCombinedWildcardFilter(
             request, separate_keys=separate_wildcard_uri_keys
         ),
         query.KeyValueMatcher(),
     ]
     self._aggregations = []
Esempio n. 2
0
    def test_with_both_tag_and_tags(self):
        """If both 'tag' and 'tags' params are used they should all become tags."""
        params = {'tag': 'foo', 'tags': 'bar'}

        result = query.TagsMatcher()(params)

        assert list(result.keys()) == ['bool']
        assert list(result['bool'].keys()) == ['must']
        assert len(result['bool']['must']) == 2
        assert {
            'match': {
                'tags': {
                    'query': 'foo',
                    'operator': 'and'
                }
            }
        } in result['bool']['must']
        assert {
            'match': {
                'tags': {
                    'query': 'bar',
                    'operator': 'and'
                }
            }
        } in result['bool']['must']
Esempio n. 3
0
    def test_aliases_tag_to_tags(self):
        """'tag' params should be transformed into 'tags' queries.

        'tag' is aliased to 'tags' because users often type tag instead of tags.

        """
        params = multidict.MultiDict()
        params.add('tag', 'foo')
        params.add('tag', 'bar')

        result = query.TagsMatcher()(params)

        assert list(result.keys()) == ['bool']
        assert list(result['bool'].keys()) == ['must']
        assert len(result['bool']['must']) == 2
        assert {
            'match': {
                'tags': {
                    'query': 'foo',
                    'operator': 'and'
                }
            }
        } in result['bool']['must']
        assert {
            'match': {
                'tags': {
                    'query': 'bar',
                    'operator': 'and'
                }
            }
        } in result['bool']['must']
Esempio n. 4
0
File: core.py Progetto: kael/h
 def __init__(self,
              request,
              separate_replies=False,
              stats=None,
              _replies_limit=200):
     self.es = request.es
     self.separate_replies = separate_replies
     self.stats = stats
     self._replies_limit = _replies_limit
     # Order matters! The KeyValueMatcher must be run last,
     # after all other modifiers have popped off the params.
     self._modifiers = [
         query.Sorter(),
         query.Limiter(),
         query.DeletedFilter(),
         query.AuthFilter(request),
         query.GroupFilter(),
         query.GroupAuthFilter(request),
         query.UserFilter(),
         query.NipsaFilter(request),
         query.AnyMatcher(),
         query.TagsMatcher(),
         query.KeyValueMatcher()
     ]
     self._aggregations = []
Esempio n. 5
0
File: core.py Progetto: afrilya53/h
 def _default_querybuilder(request, es):
     builder = query.Builder(es_version=es.version)
     builder.append_filter(query.DeletedFilter())
     builder.append_filter(query.AuthFilter(request))
     builder.append_filter(query.UriFilter(request))
     builder.append_filter(query.GroupFilter())
     builder.append_filter(query.GroupAuthFilter(request))
     builder.append_filter(query.UserFilter())
     builder.append_filter(query.NipsaFilter(request))
     builder.append_matcher(query.AnyMatcher())
     builder.append_matcher(query.TagsMatcher())
     return builder
Esempio n. 6
0
def default_querybuilder(request):
    builder = query.Builder()
    builder.append_filter(query.DeletedFilter())
    builder.append_filter(query.AuthFilter(request))
    builder.append_filter(query.UriFilter(request))
    builder.append_filter(query.GroupFilter())
    builder.append_filter(query.UserFilter())
    builder.append_matcher(query.AnyMatcher())
    builder.append_matcher(query.TagsMatcher())
    for factory in request.registry.get(FILTERS_KEY, []):
        builder.append_filter(factory(request))
    return builder
Esempio n. 7
0
 def search(self, search):
     search.append_modifier(query.TagsMatcher())
     return search