コード例 #1
0
ファイル: main.py プロジェクト: daf/ion-ux
def search(query=None):
    if request.is_xhr:
        search_query = escape(request.args.get('query'))
        search_results = ServiceApi.search(quote(search_query))
        return search_results
    else:
        return render_app_template(request.path)
コード例 #2
0
ファイル: main.py プロジェクト: Bobfrat/ion-ux
def search(query=None):
    if request.is_xhr:
        if request.method == "GET":
            search_query = request.args.get('query')
            search_results = ServiceApi.search(search_query)
            return render_json_response(search_results)
        else:
            adv_query_string = request.form['adv_query_string']
            adv_query_chunks = parse_qs(adv_query_string)

            geospatial_bounds = {'north': adv_query_chunks.get('north', [''])[0],
                                  'east': adv_query_chunks.get('east', [''])[0],
                                 'south': adv_query_chunks.get('south', [''])[0],
                                  'west': adv_query_chunks.get('west', [''])[0]}

            vertical_bounds   = {'lower': adv_query_chunks.get('vertical-lower-bound', [''])[0],
                                 'upper': adv_query_chunks.get('vertical-upper-bound', [''])[0]}

            temporal_bounds   = {'from': adv_query_chunks.get('temporal-from-ctrl', [''])[0],
                                   'to': adv_query_chunks.get('temporal-to-ctrl', [''])[0]}

            search_criteria   = zip(adv_query_chunks.get('filter_var', []),
                                    adv_query_chunks.get('filter_operator', []),
                                    adv_query_chunks.get('filter_arg', []))

            search_results    = ServiceApi.adv_search(geospatial_bounds,
                                                      vertical_bounds,
                                                      temporal_bounds,
                                                      search_criteria)

        return render_json_response(search_results)
    else:
        return render_app_template(request.path)
コード例 #3
0
ファイル: test_search.py プロジェクト: soulfisher/ion-ux
    def test_quick_search(self):
        with self.app_context:
            sa = ServiceApi()
            search_query = "parsed"
            results = sa.search(search_query=search_query)
            self.assertTrue(results != [])
            search_query_found = False
            for result in results:
                for key, value in result['_source'].iteritems():
                    if type(value) is str or type(value) is unicode:
                        if value.lower().find(search_query.lower()) > -1:
                            search_query_found = True
            self.assertTrue(search_query_found)

            search_query = "parseD"
            results = sa.search(search_query=search_query)
            self.assertTrue(results != [])
            search_query_found = False
            for result in results:
                for key, value in result['_source'].iteritems():
                    if type(value) is str or type(value) is unicode:
                        if value.lower().find(search_query.lower()) > -1:
                            search_query_found = True
            self.assertTrue(search_query_found)
コード例 #4
0
def search(query=None):
    if request.is_xhr:
        if request.method == "GET":
            search_query = request.args.get('query')
            search_results = ServiceApi.search(search_query)
            return render_json_response(search_results)
        else:
            adv_query_string = request.form['adv_query_string']
            adv_query_chunks = parse_qs(adv_query_string)

            geospatial_bounds = {
                'north': adv_query_chunks.get('north', [''])[0],
                'east': adv_query_chunks.get('east', [''])[0],
                'south': adv_query_chunks.get('south', [''])[0],
                'west': adv_query_chunks.get('west', [''])[0]
            }

            vertical_bounds = {
                'lower': adv_query_chunks.get('vertical-lower-bound', [''])[0],
                'upper': adv_query_chunks.get('vertical-upper-bound', [''])[0]
            }

            temporal_bounds = {
                'from': adv_query_chunks.get('temporal-from-ctrl', [''])[0],
                'to': adv_query_chunks.get('temporal-to-ctrl', [''])[0]
            }

            temporal_field = adv_query_chunks.get('temporal-field-ctrl',
                                                  [''])[0]

            radius = adv_query_chunks.get('radius', [''])[0]

            search_criteria = zip(adv_query_chunks.get('filter_var', []),
                                  adv_query_chunks.get('filter_operator', []),
                                  adv_query_chunks.get('filter_arg', []))

            search_results = ServiceApi.adv_search(geospatial_bounds,
                                                   vertical_bounds,
                                                   temporal_bounds,
                                                   temporal_field, radius,
                                                   search_criteria)

        return render_json_response(search_results)
    else:
        return render_app_template(request.path)