def test_build_query_limit_offset(self): params = {"q": "search word"} meta_params = {"limit": 20, "offset": 40} query = build_query(params, meta_params, "w") expected_query = ( create_search("w").query(get_text_query_on_title("search word")).fields([]).extra(from_=40, size=20) ) self.assertQueryEqual(query, expected_query)
def test_build_query_limit_offset(self): params = {'q': 'search word'} meta_params = {'limit': 20, 'offset': 40} query = build_query(params, meta_params, 'w') expected_query = create_search('w'). \ query(get_text_query_on_title('search word')). \ fields([]).\ extra(from_=40, size=20) self.assertQueryEqual(query, expected_query)
def test_build_query_sort_outing(self): params = {'act': 'skitouring'} meta_params = {'limit': 20, 'offset': 40} query = build_query(params, meta_params, 'o') expected_query = create_search('o'). \ filter(Term(activities='skitouring')).\ fields([]).\ sort({'date_end': {'order': 'desc'}}, {'id': {'order': 'desc'}}).\ extra(from_=40, size=20) self.assertQueryEqual(query, expected_query)
def test_build_query_sort_outing(self): params = {"act": "skitouring"} meta_params = {"limit": 20, "offset": 40} query = build_query(params, meta_params, "o") expected_query = ( create_search("o") .filter(Term(activities="skitouring")) .fields([]) .sort({"date_end": {"order": "desc"}}, {"id": {"order": "desc"}}) .extra(from_=40, size=20) ) self.assertQueryEqual(query, expected_query)
def search(url_params, meta_params, doc_type): """Builds a query from the URL parameters and return a tuple (document_ids, total) received from ElasticSearch. """ query = build_query(url_params, meta_params, doc_type) # only request the document ids from ES response = query.execute() document_ids = [int(doc.meta.id) for doc in response] total = response.hits.total return document_ids, total
def test_build_query(self): params = {"q": "search word", "walt": "1500", "a": "1234,4567", "l": "fr"} meta_params = {"limit": 10, "offset": 0} query = build_query(params, meta_params, "w") expected_query = ( create_search("w") .query(get_text_query_on_title("search word")) .filter(Term(available_locales="fr")) .filter(Terms(areas=[1234, 4567])) .filter(Range(elevation={"gte": 1500})) .fields([]) .extra(from_=0, size=10) ) self.assertQueryEqual(query, expected_query)
def test_build_query_limit_offset(self): params = { 'q': 'search word' } meta_params = { 'limit': 20, 'offset': 40 } query = build_query(params, meta_params, 'w') expected_query = create_search('w'). \ query(get_text_query('search word')). \ fields([]).\ extra(from_=40, size=20) self.assertQueryEqual(query, expected_query)
def test_build_query_sort_outing(self): params = { 'act': 'skitouring' } meta_params = { 'limit': 20, 'offset': 40 } query = build_query(params, meta_params, 'o') expected_query = create_search('o'). \ filter(Term(activities='skitouring')).\ fields([]).\ sort({'date_end': {'order': 'desc'}}, {'id': {'order': 'desc'}}).\ extra(from_=40, size=20) self.assertQueryEqual(query, expected_query)
def test_build_query(self): params = { 'q': 'search word', 'walt': '1500', 'a': '1234,4567', 'l': 'fr' } meta_params = {'limit': 10, 'offset': 0} query = build_query(params, meta_params, 'w') expected_query = create_search('w'). \ query(get_text_query_on_title('search word')). \ filter(Term(available_locales='fr')).\ filter(Terms(areas=[1234, 4567])). \ filter(Range(elevation={'gte': 1500})). \ fields([]).\ extra(from_=0, size=10) self.assertQueryEqual(query, expected_query)
def test_build_query_bbox(self): params = {"q": "search word", "walt": "1500", "bbox": "699398,5785365,699498,5785465"} meta_params = {"limit": 10, "offset": 0} query = build_query(params, meta_params, "w") expected_query = ( create_search("w") .query(get_text_query_on_title("search word")) .filter(Range(elevation={"gte": 1500})) .filter( GeoBoundingBox( geom={"left": 6.28279913, "bottom": 46.03129072, "right": 6.28369744, "top": 46.03191439}, type="indexed", ) ) .fields([]) .extra(from_=0, size=10) ) self.assertQueryEqual(query, expected_query)
def test_build_query_bbox(self): params = { 'q': 'search word', 'walt': '1500', 'bbox': '699398,5785365,699498,5785465' } meta_params = {'limit': 10, 'offset': 0} query = build_query(params, meta_params, 'w') expected_query = create_search('w'). \ query(get_text_query_on_title('search word')). \ filter(Range(elevation={'gte': 1500})). \ filter(GeoBoundingBox( geom={ 'left': 6.28279913, 'bottom': 46.03129072, 'right': 6.28369744, 'top': 46.03191439}, type='indexed')).\ fields([]).\ extra(from_=0, size=10) self.assertQueryEqual(query, expected_query)
def test_build_query(self): params = { 'q': 'search word', 'walt': '1500', 'a': '1234,4567', 'l': 'fr' } meta_params = { 'limit': 10, 'offset': 0 } query = build_query(params, meta_params, 'w') expected_query = create_search('w'). \ query(get_text_query('search word')). \ filter(Term(available_locales='fr')).\ filter(Terms(areas=[1234, 4567])). \ filter(Range(elevation={'gte': 1500})). \ fields([]).\ extra(from_=0, size=10) self.assertQueryEqual(query, expected_query)
def test_build_query_bbox(self): params = { 'q': 'search word', 'walt': '1500', 'bbox': '699398,5785365,699498,5785465' } meta_params = { 'limit': 10, 'offset': 0 } query = build_query(params, meta_params, 'w') expected_query = create_search('w'). \ query(get_text_query('search word')). \ filter(Range(elevation={'gte': 1500})). \ filter(GeoBoundingBox( geom={ 'left': 6.28279913, 'bottom': 46.03129072, 'right': 6.28369744, 'top': 46.03191439}, type='indexed')).\ fields([]).\ extra(from_=0, size=10) self.assertQueryEqual(query, expected_query)