mirror of
https://github.com/osm-search/Nominatim.git
synced 2026-03-13 22:34:07 +00:00
add function to recalculate counts for full-word search term
This commit is contained in:
11
sql/words_from_search_name.sql
Normal file
11
sql/words_from_search_name.sql
Normal file
@@ -0,0 +1,11 @@
|
||||
DROP TABLE IF EXISTS word_frequencies;
|
||||
CREATE TABLE word_frequencies AS
|
||||
SELECT unnest(name_vector) as id, count(*) FROM search_name GROUP BY id;
|
||||
|
||||
CREATE INDEX idx_word_frequencies ON word_frequencies(id);
|
||||
|
||||
UPDATE word SET search_name_count = count
|
||||
FROM word_frequencies
|
||||
WHERE word_token like ' %' and word_id = id;
|
||||
|
||||
DROP TABLE word_frequencies;
|
||||
@@ -33,6 +33,7 @@ $aCMDOptions
|
||||
array('index-instances', '', 0, 1, 1, 1, 'int', 'Number of indexing instances (threads)'),
|
||||
|
||||
array('deduplicate', '', 0, 1, 0, 0, 'bool', 'Deduplicate tokens'),
|
||||
array('recompute-word-counts', '', 0, 1, 0, 0, 'bool', 'Compute frequency of full-word search terms'),
|
||||
array('no-npi', '', 0, 1, 0, 0, 'bool', '(obsolete)'),
|
||||
);
|
||||
getCmdOpt($_SERVER['argv'], $aCMDOptions, $aResult, true, true);
|
||||
@@ -237,6 +238,12 @@ if ($aResult['deduplicate']) {
|
||||
}
|
||||
}
|
||||
|
||||
if ($aResult['recompute-word-counts']) {
|
||||
info('Recompute frequency of full-word search terms');
|
||||
$sTemplate = file_get_contents(CONST_BasePath.'/sql/words_from_search_name.sql');
|
||||
runSQLScript($sTemplate, true, true);
|
||||
}
|
||||
|
||||
if ($aResult['index']) {
|
||||
passthru(CONST_InstallPath.'/nominatim/nominatim -i -d '.$aDSNInfo['database'].' -P '.$aDSNInfo['port'].' -t '.$aResult['index-instances'].' -r '.$aResult['index-rank']);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user