From fab75f2b4d82f01f1f8d238ca34d6bdd065c2ccf Mon Sep 17 00:00:00 2001 From: Fize Jacques <jacques.fize@cirad.fr> Date: Tue, 2 Apr 2019 15:13:17 +0200 Subject: [PATCH] Add _all query + modify n_label similar and n_alias_similar --- .gitignore | 2 ++ gazpy/gazetteer/geodict.py | 19 ++++++++++++++++--- gazpy/query/query_builder.py | 6 +++--- setup.py | 2 +- 4 files changed, 22 insertions(+), 7 deletions(-) diff --git a/.gitignore b/.gitignore index 894a44c..c51f9c0 100644 --- a/.gitignore +++ b/.gitignore @@ -102,3 +102,5 @@ venv.bak/ # mypy .mypy_cache/ +.DS_Store +.idea diff --git a/gazpy/gazetteer/geodict.py b/gazpy/gazetteer/geodict.py index 77dbad8..9b9061c 100644 --- a/gazpy/gazetteer/geodict.py +++ b/gazpy/gazetteer/geodict.py @@ -28,8 +28,15 @@ class Geodict(Base): sorted_by=self.score_field, sized=True, size=n) try: - return self.to_element(self.es_client.search("gazetteer", "place", query)) - except : + res = self.to_element(self.es_client.search("gazetteer", "place", query)) + if not len(res)>0: + query = self.qb.query(query_string=True,_all=True, regexp=True, regexp_value=".* ({0}) .*".format(label), field=lang, + value=label, sorted=score, + sorted_by=self.score_field, sized=True, + size=n) + res = self.to_element(self.es_client.search("gazetteer", "place", query)) + return res + except Exception as e: return [] def get_n_alias_similar(self, alias, lang, n, score=True): @@ -38,7 +45,13 @@ class Geodict(Base): sorted_by=self.score_field, sized=True, size=n) try: - return self.to_element(self.es_client.search("gazetteer", "place", query)) + res= self.to_element(self.es_client.search("gazetteer", "place", query)) + if not len(res) >0: + query = self.qb.query(query_string=True, _all=True, nested=True, nested_field=lang, regexp=True, + regexp_value=".* ({0}) .*".format(alias), field="aliases", value=alias, sorted=score, + sorted_by=self.score_field, sized=True, + size=n) + return res except : return [] diff --git a/gazpy/query/query_builder.py b/gazpy/query/query_builder.py index 56340c0..469e70d 100644 --- a/gazpy/query/query_builder.py +++ b/gazpy/query/query_builder.py @@ -19,7 +19,7 @@ class QueryBuilder(): query_string = kwargs.get("query_string", False) nested = kwargs.get("nested", False) match_all=kwargs.get("match_all",False) - + _all =kwargs.get("_all",False) #Value value=kwargs.get("value","") @@ -69,12 +69,12 @@ class QueryBuilder(): if query_string: - body_query["query"]={"query_string":{"default_field":field,"query":value if not regexped else regexp_value}} + ff=(field if not _all else "_all") + body_query["query"]={"query_string":{"default_field":ff,"query":value if not regexped else regexp_value}} elif term: body_query["query"]={"term":{field:value}} elif match_all: body_query["query"] = {"match_all":{}} - body_query["query"]={"bool":{"must":[body_query["query"]]}} if min_valued: diff --git a/setup.py b/setup.py index 3557326..017017e 100644 --- a/setup.py +++ b/setup.py @@ -7,7 +7,7 @@ from setuptools.command import install setup( name='gazpy', - version='0.1', + version='0.3', packages=['gazpy', 'gazpy.query', 'gazpy.gazetteer'], url='', license='MIT', -- GitLab