mirror of
https://github.com/osm-search/Nominatim.git
synced 2024-11-22 21:28:10 +03:00
Merge pull request #3301 from lonvia/fix-class-search-regression
Interpret stand-alone special terms always as near term
This commit is contained in:
commit
bfc7acbb18
@ -186,7 +186,10 @@ class ICUQueryAnalyzer(AbstractQueryAnalyzer):
|
||||
if trange.start == 0:
|
||||
query.add_token(trange, qmod.TokenType.NEAR_ITEM, token)
|
||||
else:
|
||||
query.add_token(trange, qmod.TokenType.QUALIFIER, token)
|
||||
if trange.start == 0 and trange.end == query.num_token_slots():
|
||||
query.add_token(trange, qmod.TokenType.NEAR_ITEM, token)
|
||||
else:
|
||||
query.add_token(trange, qmod.TokenType.QUALIFIER, token)
|
||||
else:
|
||||
query.add_token(trange, DB_TO_TOKEN_TYPE[row.type], token)
|
||||
|
||||
|
@ -136,6 +136,15 @@ Feature: Search queries
|
||||
| class | type |
|
||||
| leisure | firepit |
|
||||
|
||||
|
||||
Scenario: POI search in a bounded viewbox
|
||||
When sending json search query "restaurants"
|
||||
| viewbox | bounded |
|
||||
| 9.50830,47.15253,9.52043,47.14866 | 1 |
|
||||
Then results contain
|
||||
| class | type |
|
||||
| amenity | restaurant |
|
||||
|
||||
Scenario Outline: Key/value search near given coordinate can be restricted to country
|
||||
When sending json search query "[natural=peak] 47.06512,9.53965" with address
|
||||
| countrycodes |
|
||||
|
@ -138,6 +138,19 @@ async def test_category_words_only_at_beginning(conn):
|
||||
assert not query.nodes[2].starting
|
||||
|
||||
|
||||
@pytest.mark.asyncio
|
||||
async def test_freestanding_qualifier_words_become_category(conn):
|
||||
ana = await tok.create_query_analyzer(conn)
|
||||
|
||||
await add_word(conn, 1, 'foo', 'S', 'FOO', {'op': '-'})
|
||||
|
||||
query = await ana.analyze_query(make_phrase('foo'))
|
||||
|
||||
assert query.num_token_slots() == 1
|
||||
assert len(query.nodes[0].starting) == 1
|
||||
assert query.nodes[0].starting[0].ttype == TokenType.NEAR_ITEM
|
||||
|
||||
|
||||
@pytest.mark.asyncio
|
||||
async def test_qualifier_words(conn):
|
||||
ana = await tok.create_query_analyzer(conn)
|
||||
|
Loading…
Reference in New Issue
Block a user