mirror of
https://github.com/osm-search/Nominatim.git
synced 2026-03-07 10:34:08 +00:00
the category parameter in search should result in a qualifier
This commit is contained in:
@@ -321,8 +321,15 @@ class SearchBuilder:
|
|||||||
self.query.get_tokens(assignment.postcode,
|
self.query.get_tokens(assignment.postcode,
|
||||||
TokenType.POSTCODE))
|
TokenType.POSTCODE))
|
||||||
if assignment.qualifier:
|
if assignment.qualifier:
|
||||||
sdata.set_qualifiers(self.query.get_tokens(assignment.qualifier,
|
tokens = self.query.get_tokens(assignment.qualifier, TokenType.QUALIFIER)
|
||||||
TokenType.QUALIFIER))
|
if self.details.categories:
|
||||||
|
tokens = [t for t in tokens if t.get_category() in self.details.categories]
|
||||||
|
if not tokens:
|
||||||
|
return None
|
||||||
|
sdata.set_qualifiers(tokens)
|
||||||
|
elif self.details.categories:
|
||||||
|
sdata.qualifiers = dbf.WeightedCategories(self.details.categories,
|
||||||
|
[0.0] * len(self.details.categories))
|
||||||
|
|
||||||
if assignment.address:
|
if assignment.address:
|
||||||
sdata.set_ranking([self.get_addr_ranking(r) for r in assignment.address])
|
sdata.set_ranking([self.get_addr_ranking(r) for r in assignment.address])
|
||||||
@@ -347,10 +354,6 @@ class SearchBuilder:
|
|||||||
tokens[cat] = t.penalty
|
tokens[cat] = t.penalty
|
||||||
return dbf.WeightedCategories(list(tokens.keys()), list(tokens.values()))
|
return dbf.WeightedCategories(list(tokens.keys()), list(tokens.values()))
|
||||||
|
|
||||||
if self.details.categories:
|
|
||||||
return dbf.WeightedCategories(self.details.categories,
|
|
||||||
[0.0] * len(self.details.categories))
|
|
||||||
|
|
||||||
return None
|
return None
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -309,8 +309,8 @@ def test_name_only_search_with_category():
|
|||||||
assert len(searches) == 1
|
assert len(searches) == 1
|
||||||
search = searches[0]
|
search = searches[0]
|
||||||
|
|
||||||
assert isinstance(search, dbs.NearSearch)
|
assert isinstance(search, dbs.PlaceSearch)
|
||||||
assert isinstance(search.search, dbs.PlaceSearch)
|
assert search.qualifiers.values == [('foo', 'bar')]
|
||||||
|
|
||||||
|
|
||||||
def test_name_only_search_with_countries():
|
def test_name_only_search_with_countries():
|
||||||
|
|||||||
Reference in New Issue
Block a user