Page 1 of 1

The set time limit for a search has been exceeded (xlocate 1)

Posted: Mon Jul 03, 2017 3:28 pm
by Bernd Welter
Hi there

These days I was asked for the meaning of the following error message:

"The set time limit for a search has been exceeded. The result list is incomplete." errorCode="-4150"

The message appears in the context of a geocoding if the search requires more time than configured. It is not a simple HTTP timeout but a module timeout of the geocoding engine.
If it appears the engine usually has found several hits but it was a long lasting task which might be interrupted by the timeout and the result list may lack some of the hits.

The threshold for the timeout is defined in the native profile:
Among other properties here are three timeouts:

Code: Select all

<?xml version="1.0" encoding="UTF-8"?>
<LocatingEngineParameters>
	<SearchParameters>
[..]		<Engine.CitySearchTimeout Value="7500" Type="long"/>
[..]		<Engine.StreetSearchTimeout Value="7000" Type="long"/>
[..]		<Engine.SuggestionSearchTimeout Value="1000" Type="long"/>
[..]	</SearchParameters>
        ...
</LocatingEngineParameters>
If you increase the timeouts, the results might contain further hits but the response might take longer.
If you decrease the timeouts, the results might contain less hits but the response might take shorter.

It's a question of your preferences.

Best regards,
Bernd

Re: The set time limit for a search has been exceeded.

Posted: Tue Jul 04, 2017 7:13 am
by bocajo
Engine.CitySearchTimeout: Overall time in Milliseconds the search is allowed to run before it is aborted. The value -1 indicates that the time is not limited.
Engine.StreetSearchTimeout: Milliseconds the search is allowed to run before the street search starts. If this part of the search takes longer it is aborted. The value -1 indicates that the time is not limited.

The idea is that the xLocate is returning a least the city if a search takes to long.

Re: The set time limit for a search has been exceeded.

Posted: Mon Aug 02, 2021 8:34 am
by Bernd Welter
Hi everyone,

just wanted to add some potential causes / countermeasures for the described timeout issue:
  • Missing country code: depending on the size of the configured map the country code has a significant impact on the search because in xLocate1 it is used as a hard filter: database addresses that do not match the input country code won't appear in the result. In xLocate 2 the address's country code is a weak filter. If you want to apply the code as a hard filter you have to use the search option AllowedCountries.
  • Another important factor is the structure of the input text strings: Strings which contain many separators will blow up the computation time - especially if the info in the data is contradictory.
  • Separate noise from relevant data : Sometimes this occurs when users use the texts also for user hints such as "there's a free parking behind the fuel station on the other sider of the road" (no joke!). If you want to store such info together with an address we recommend to provide dedicated fields which are not used for the geocoding.
Best regards,
Bernd