Sarah Hoffmann
dc1baaa0af
prefer min() function over if construct
...
Fixes a linter complaint.
2024-02-27 09:26:50 +01:00
Sarah Hoffmann
4aba36c5ac
API debug: properly escape non-highlighted code
2024-02-19 18:39:01 +01:00
Sarah Hoffmann
05fad607ff
make Python frontend default and PHP optional
2024-02-19 18:39:01 +01:00
Sarah Hoffmann
b2d3f0a8b3
remove unnecessary nested group in CLI import command
2024-02-16 11:32:50 +01:00
Sarah Hoffmann
4ce13f5c1f
prefilter bad results before adding details and reranking
...
Move the first cutting of the result list before reranking
by result match. This means that results with significantly
less importance are removed early and independently of the
fact how well they match the original query.
Fixes #3266 .
2024-02-06 20:29:48 +01:00
Sarah Hoffmann
bc51378aee
properly grant rights to read-only user when switching out word table
2024-02-06 17:30:01 +01:00
Sarah Hoffmann
81eed0680c
recreate word table when refreshing counts
...
The counting touches a large part of the word table, leaving
bloated tables and indexes. Thus recreate the table instead and
swap it in.
2024-02-04 21:35:10 +01:00
Sarah Hoffmann
33c0f249b1
avoid LookupAny with address and too many name tokens
...
The index for nameaddress_vector has grown so large that PostgreSQL
will resort to a sequential scan if there are too many items
in the LookupAny list.
2024-01-29 16:52:14 +01:00
Sarah Hoffmann
76eadc562c
print any collected debug output when returning a timeout error
2024-01-28 22:30:34 +01:00
Sarah Hoffmann
f07f8530a8
housenumber-only searches cannot be combined with qualifiers
2024-01-28 19:03:11 +01:00
Sarah Hoffmann
103800a732
adjust rankings for housenumber-only searches
...
A normal address search with housenumber will use name rankings for
the street name. This is slightly different than weighing for
address parts. Use the same ranking for the first part of the
address for housenumber-only searches to make sure that penalties
remain comparable.
2024-01-28 19:03:11 +01:00
Sarah Hoffmann
f9ba7a465a
always add a penalty for name + address search fallback
...
If there already was a search by full names, the search is likely
a repeatition that yields the same results, only running slower.
2024-01-28 19:03:11 +01:00
Sarah Hoffmann
fed46240d5
disallow category tokens in the middle of a query string
...
This already worked for left-to-right readings and now is also
implemented for right-to-left reading. A qualifier must always be
before or after the name.
2024-01-28 19:03:11 +01:00
Sarah Hoffmann
2703442fd2
protect against very frequent bad partials
2024-01-28 19:03:11 +01:00
Sarah Hoffmann
2813bf18e6
avoid duplicates in the list of partial tokens for a query
...
This messes with the estimates for expected results.
2024-01-28 19:03:11 +01:00
Sarah Hoffmann
b3a2b3d484
catch special async timeout error in servers
...
In Python <= 3.10 this is not yet the same as TimeoutError.
Fixes #3303 .
2024-01-27 20:57:23 +01:00
Sarah Hoffmann
e0ca2ce6ec
interpret stand-alone special terms always as near term
...
Fixes #3298 .
2024-01-16 17:19:21 +01:00
Sarah Hoffmann
28f7e51279
add country code to words to be rematched
2024-01-08 12:23:23 +01:00
Sarah Hoffmann
b2afe3ce3e
when a country is in the results, restrict further searches to places
...
A country search result usually comes with a very high importance.
As a result only other very well known places will show up together
with country results and that means only places with lower address
ranks. Name searches for country names tend to yield a lot of POI
results because the country name is part of the name
(think "embassy of Sweden"). By excluding POIs from further searches,
the search is sped up quite a bit.
2024-01-07 17:29:12 +01:00
Sarah Hoffmann
7337898b84
dump params in log view
2024-01-07 15:37:53 +01:00
Sarah Hoffmann
4305160c91
prioritize country searches when penaly is equal
2024-01-07 15:28:37 +01:00
Sarah Hoffmann
dc52d0954e
Merge pull request #3238 from mtmail/check-database-for-version-match
...
admin --check-database also checks database vs nominatim version
2024-01-07 15:24:00 +01:00
Sarah Hoffmann
d3a575319f
Merge pull request #3289 from lonvia/viewbox-and-housenumbers
...
Do not restrict by viewbox when housenumber or postcode is available
2024-01-07 15:23:14 +01:00
Sarah Hoffmann
2592bf1954
Merge pull request #3290 from lonvia/near-vs-quaifier-words
...
Do not run near queries on qualifier words
2024-01-07 15:23:00 +01:00
Sarah Hoffmann
474d4230b8
fix timezone handling for timestamps from the database
...
SQLite is not timezone-aware, so make sure to convert to UTC
before inserting any data.
2024-01-07 11:37:40 +01:00
Sarah Hoffmann
10a5424a71
do not run near queries on qualifier words
...
There is too much potential for confusion (e.g. 'Rio Grande' read
as 'river near Grande') fir too little gain. Use near phrases
instead.
2024-01-07 11:33:11 +01:00
Sarah Hoffmann
7eb04f67e2
do not restrict by viewbox when housenumber or postcode is available
...
Fixes #3274 .
2024-01-07 11:29:26 +01:00
Marc Tobias
1d7e078a2c
check-database also checks database vs nominatim version
2024-01-06 20:56:56 +01:00
Sarah Hoffmann
8e90fa3395
avoid closure variables in lambda statements
...
There is a bug in SQLAlchemy that assigns the wrong value to bind
parameters from closure variables when reusing lambda statements
that are later extended with other non-lambda expressions.
Thus either avoid lambda statements with closure variables or extending
them with non-lambda expressions.
2024-01-05 17:49:28 +01:00
Sarah Hoffmann
02af0a2c87
use correct SQLAlchemy pool for asynchronous connections
...
See https://github.com/sqlalchemy/sqlalchemy/issues/8771
2024-01-02 16:15:44 +01:00
Sarah Hoffmann
fa4e5513d1
API: avoid engine disposal on startup
2024-01-02 16:10:30 +01:00
Sarah Hoffmann
93afe5a7c3
update typing for latest changes in SQLAlchemy
2023-12-29 20:55:33 +01:00
Sarah Hoffmann
af85ad390f
Merge pull request #3273 from lonvia/search-with-sqlite
...
Add forward search capability for SQLite databases
2023-12-12 12:15:22 +01:00
Sarah Hoffmann
89094cf92e
error out when a SQLite database does not exist
...
Requires to mark the databse r/w when it is newly created in the
convert function.
2023-12-07 10:24:53 +01:00
Sarah Hoffmann
3f5484f48f
enable search for sqlite conversion by default
2023-12-07 09:33:42 +01:00
Sarah Hoffmann
6d39563b87
enable all API tests for sqlite and port missing features
2023-12-07 09:32:02 +01:00
Sarah Hoffmann
0d840c8d4e
extend sqlite converter for search tables
2023-12-07 09:31:00 +01:00
Sarah Hoffmann
381bd0b576
remove unused function
2023-12-07 09:31:00 +01:00
Sarah Hoffmann
b5c61e0b5b
improve typing for @compiles constructs
...
The first parameter is in fact the self parameter referring to
the function class.
2023-12-07 09:31:00 +01:00
Sarah Hoffmann
df6eddebcd
void unnecessary aliases
2023-12-07 09:31:00 +01:00
Sarah Hoffmann
b6c8c0e72b
factor out SQL for filtering by location
...
Also improves on the decision if an indexed is used or not.
2023-12-07 09:31:00 +01:00
Sarah Hoffmann
b06f5fddcb
simplify handling of SQL lookup code for search_name
...
Use function classes which can be instantiated directly.
2023-12-07 09:31:00 +01:00
Sarah Hoffmann
8791c6cb69
correctly close API objects during testing
2023-12-07 09:31:00 +01:00
Sarah Hoffmann
615b166c68
clean up ST_DWithin and intersects() functions
...
A non-index version of ST_DWithin is not necessary. ST_Distance
can be used for that purpose. Index use for intersects can be
covered with a simple parameter.
2023-12-07 09:31:00 +01:00
Sarah Hoffmann
c41f2fed21
simplify weigh_search() function
...
Use JSON arrays which can have mixed types and therefore have
a more logical structure than separate arrays. Avoid JSON dicts
because of their verboseness.
2023-12-07 09:31:00 +01:00
Sarah Hoffmann
05e47fbb28
fix parameter formatting in sqlite debug output
2023-12-07 09:31:00 +01:00
Sarah Hoffmann
1b7c8240ba
enable connection pools for sqlite
...
Connecting is reasonably expensive because the spatialite extension
needs to be loaded. Disable pooling for tests because there is some
memory leak when quickly opening and closing QueuePools with sqlite
connections.
2023-12-07 09:31:00 +01:00
Sarah Hoffmann
c4fd3ab97f
hide type differences between Postgres and Sqlite in custom types
...
Also define a custom set of operators in preparation of differences
in implementation.
2023-12-07 09:31:00 +01:00
Sarah Hoffmann
3969ce0f55
Merge pull request #3268 from mtmail/wikipedia-file-path-warning
...
Improve error message when Wikipedia importance file is not found
2023-12-07 09:21:59 +01:00
Robbe Haesendonck
4f5f5ea8fc
Removed unnecessary check for --prepare-database flag
2023-12-07 09:04:33 +01:00