diff --git a/.gitignore b/.gitignore index 894a44cc066a027465cd26d634948d56d13af9af..c51f9c07986daba25519fb6741bb82ac05c89ae6 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 77dbad82db6ccbd143894963646efe0de2cf9ffe..9b9061c94e0be2d08edbcbe7093307992b719032 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 56340c01cec56f84dac1cb085755fe9ac56365e6..469e70dd78973b50f43688aa303588f7a8c7bc93 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 3557326df7cde6321bcbcc93595010b3af4ea719..017017ed9a91bc3bd9ada07846412513b488e312 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',