1588 lines
52 KiB
C++
1588 lines
52 KiB
C++
#include "search/query_params.hpp"
|
||
|
||
#include "search/ranking_utils.hpp"
|
||
#include "search/token_range.hpp"
|
||
|
||
#include <unordered_map>
|
||
#include <sstream>
|
||
|
||
namespace search
|
||
{
|
||
using namespace std;
|
||
|
||
namespace
|
||
{
|
||
// All synonyms should be lowercase.
|
||
|
||
/// @todo These should check the map language and use only the corresponding translation.
|
||
unordered_map<string, vector<string>> const kSynonyms = {
|
||
/// @todo Should process synonyms with errors like "blvrd" -> "blvd".
|
||
/// @see HouseOnStreetSynonymsWithMisprints test.
|
||
{"1", {"pierwszy", "pierwsza", "un", "una", "pierwsze", "primo", "واحد", "حادى", "احد"}},
|
||
{"1st", {"first"}},
|
||
{"1°", {"primo"}},
|
||
{"20", {"venti", "عشرين", "عشرون"}},
|
||
{"25", {"venticinque", "خمسه و عشرون", "خمس و عشرين"}},
|
||
{"2", {"due", "drugi", "drugie", "druga", "اثنان", "اثنين"}},
|
||
{"2nd", {"second"}},
|
||
{"3", {"trzecia", "trzecie", "tre", "trzeci", "ثلاث"}},
|
||
{"3rd", {"third"}},
|
||
{"4", {"quattro", "اربع"}},
|
||
{"4th", {"fourth"}},
|
||
{"5", {"cinque", "خمس"}},
|
||
{"5th", {"fifth"}},
|
||
{"6", {"sei", "ست"}},
|
||
{"6th", {"sixth"}},
|
||
{"7", {"sette", "سبع"}},
|
||
{"7th", {"seventh"}},
|
||
{"8", {"otto", "ثمان", "ثمانيه"}},
|
||
{"8th", {"eighth"}},
|
||
{"9", {"nove", "تسع"}},
|
||
{"9th", {"ninth"}},
|
||
{"10th", {"tenth"}},
|
||
{"11th", {"eleventh"}},
|
||
{"12th", {"twelfth"}},
|
||
{"13th", {"thirteenth"}},
|
||
{"14th", {"fourteenth"}},
|
||
{"15th", {"fifteenth"}},
|
||
{"16th", {"sixteenth"}},
|
||
{"17th", {"seventeenth"}},
|
||
{"18th", {"eighteenth"}},
|
||
{"19th", {"nineteenth"}},
|
||
{"20th", {"twentieth"}},
|
||
{"a", {"am", "auto-estrada", "aikštė"}},
|
||
{"abe", {"abbaye"}},
|
||
{"accs", {"access"}},
|
||
{"aceq", {"acequia"}},
|
||
{"ach", {"ancien chemin"}},
|
||
//{"a.d", {"auf der", "an der"}}, // unreachable
|
||
{"adi", {"ambodi"}},
|
||
{"adm", {"admirała", "admirał"}},
|
||
{"afb", {"air force base"}},
|
||
{"agl", {"agglomération"}},
|
||
{"aha", {"andoha"}},
|
||
{"ahi", {"ambohi"}},
|
||
{"aire", {"aire", "aires"}},
|
||
{"akh", {"allgemeines krankenhaus"}},
|
||
{"al", {"alejach", "aleją", "alley", "alei", "alue", "aleja", "alameda", "alle", "aleea", "aleje", "allee"}},
|
||
{"alam", {"alameda"}},
|
||
{"alea", {"aleea"}},
|
||
{"ale", {"aleea"}},
|
||
{"alf", {"alferes"}},
|
||
{"all", {"alley", "allées", "allée"}},
|
||
{"ally", {"alley"}},
|
||
{"alm", {"almirante"}},
|
||
{"alque", {"alquería"}},
|
||
{"alwy", {"alleyway"}},
|
||
{"aly", {"alley"}},
|
||
{"ambl", {"amble"}},
|
||
{"andad", {"andador"}},
|
||
{"angb", {"air national guard base"}},
|
||
{"angta", {"angosta"}},
|
||
{"ani", {"ambony"}},
|
||
{"ano", {"andrano"}},
|
||
{"anse", {"anse"}},
|
||
{"any", {"ambinany"}},
|
||
{"aparc", {"aparcament"}},
|
||
{"apch", {"approach"}},
|
||
{"apdro", {"apeadero"}},
|
||
{"apmt", {"apartament"}},
|
||
{"app", {"approach"}},
|
||
{"aprt", {"airport"}},
|
||
{"apt", {"apartat", "apartment"}},
|
||
{"apto", {"apartamento"}},
|
||
{"aptos", {"apartamentos"}},
|
||
{"apts", {"apartments"}},
|
||
{"arb", {"arboleda"}},
|
||
{"arc", {"arcade", "arcades"}},
|
||
{"arq", {"arquiteto", "arquitecto"}},
|
||
{"arqº", {"arquiteto", "arquitecto"}},
|
||
{"arral", {"arrabal"}},
|
||
{"arry", {"arroyo"}},
|
||
{"art", {"anciennes routes", "ancienne route"}},
|
||
{"artl", {"arterial"}},
|
||
{"arty", {"artery"}},
|
||
{"as", {"asema"}},
|
||
{"asi", {"ampasi"}},
|
||
{"ass", {"associação"}},
|
||
{"asz", {"altstoffsammelzentrum"}},
|
||
{"àt", {"àtic"}},
|
||
{"ato", {"ambato"}},
|
||
{"atr", {"ambohitr"}},
|
||
{"auk", {"aukio"}},
|
||
{"aut", {"autoroute"}},
|
||
{"auto", {"autopista"}},
|
||
{"autop", {"autopista"}},
|
||
{"autov", {"autovía", "autovia"}},
|
||
{"avª", {"avenida"}},
|
||
{"av", {"avinguda", "avenida", "avenue"}},
|
||
{"avda", {"avinguda", "avenida"}},
|
||
{"avd", {"avinguda", "avenida"}},
|
||
{"ave", {"avenue"}},
|
||
{"awg", {"awang"}},
|
||
{"az", {"azinhaga"}},
|
||
{"ba", {"banan"}},
|
||
{"balnr", {"balneario"}},
|
||
{"barda", {"barriada"}},
|
||
{"basn", {"basin"}},
|
||
{"bast", {"baston"}},
|
||
{"bat", {"batalionu", "batalion", "batalionów", "bataliony"}},
|
||
{"bayer", {"bayerische", "bayerisch", "bayerischer", "bayerisches"}},
|
||
{"b", {"berg", "barri", "bach", "barriada", "banda", "bairro", "bad", "bei"}},
|
||
{"bc", {"beco"}},
|
||
{"bch", {"bas chemin", "beach"}},
|
||
{"bcle", {"boucle"}},
|
||
{"bco", {"beco"}},
|
||
{"bda", {"banda", "baixada"}},
|
||
{"bd", {"boulevard", "bulevardul"}},
|
||
{"bđ", {"bưu điện"}},
|
||
{"bdge", {"bridge"}},
|
||
{"bdul", {"bulevardul"}},
|
||
{"bdwy", {"broadway"}},
|
||
{"bdy", {"boundary"}},
|
||
{"begi", {"béguinage", "béguinages"}},
|
||
{"bend", {"bend"}},
|
||
{"ber", {"berges", "berge"}},
|
||
{"bez", {"bezirk"}},
|
||
{"bg", {"bundesgymnasium", "burg", "berg"}},
|
||
{"bgld", {"burgenländische", "burgenländisches", "burgenländischer"}},
|
||
{"bgm", {"bürgermeister"}},
|
||
{"bgy", {"barangay"}},
|
||
{"bhf", {"bahnhof"}},
|
||
{"bibl", {"biblioteca"}},
|
||
{"bk", {"back"}},
|
||
{"bł", {"błogosławionego", "błogosławiona", "błogosławionej", "błogosławieni", "błogosławionych", "błogosławiony"}},
|
||
{"bl", {"bulvar", "bulvarı", "bowl", "bloc", "bloco"}},
|
||
{"bldg", {"building"}},
|
||
{"bldgs", {"buildings"}},
|
||
{"bldngs", {"buildings"}},
|
||
{"blk", {"block"}},
|
||
{"blq", {"bloque"}},
|
||
{"blv", {"bulvar", "bulevardul"}},
|
||
{"blvd", {"boulevard", "bulevardul"}},
|
||
{"blvr", {"bulevar"}},
|
||
{"blvrd", {"boulevard"}},
|
||
{"bnc", {"barranc"}},
|
||
{"bnd", {"bend"}},
|
||
{"bº", {"bairro"}},
|
||
{"bo", {"barrio"}},
|
||
{"boul", {"boulevard"}},
|
||
{"bpa", {"biskupa", "biskup"}},
|
||
{"bp", {"biskupa", "biskup"}},
|
||
{"bpd", {"bundespolizeidirektion"}},
|
||
{"bps", {"bypass"}},
|
||
{"bqllo", {"barranquil"}},
|
||
{"branc", {"barranco"}},
|
||
{"br", {"bridge", "brücke", "broeder", "brae", "bairro", "brace"}},
|
||
{"brdg", {"bridge"}},
|
||
{"bre", {"barrières", "barrière"}},
|
||
{"brg", {"brigadeiro", "bourg", "bundesrealgymnasium"}},
|
||
{"brgy", {"barangay"}},
|
||
{"bri", {"bridge"}},
|
||
{"brk", {"break", "brook"}},
|
||
{"bro", {"brother"}},
|
||
{"brw", {"brow"}},
|
||
{"bsn", {"basin"}},
|
||
{"bstd", {"bastide"}},
|
||
{"bt", {"bukit"}},
|
||
{"bul", {"bulevardul"}},
|
||
{"bulevard", {"bulevardul"}},
|
||
{"bulevardu", {"bulevardul"}},
|
||
{"bulev", {"bulevardul"}},
|
||
{"bulw", {"bulwar"}},
|
||
{"burg", {"burgemeester"}},
|
||
{"bus", {"business"}},
|
||
{"but", {"butte"}},
|
||
{"bv", {"bombeiros voluntários"}},
|
||
{"bvd", {"boulevard"}},
|
||
{"bway", {"broadway"}},
|
||
{"bwlk", {"boardwalk"}},
|
||
{"bwy", {"broadway"}},
|
||
{"bxs", {"baixos"}},
|
||
{"bypa", {"bypass"}},
|
||
{"byp", {"bypass"}},
|
||
{"bywy", {"byway"}},
|
||
{"cac", {"cacique"}},
|
||
{"cª", {"companhia"}},
|
||
{"cal", {"calea"}},
|
||
{"cale", {"cale"}},
|
||
{"callej", {"callejón"}},
|
||
{"cam", {"caminho", "camino"}},
|
||
{"campg", {"camping"}},
|
||
{"cant", {"cantón", "cantonada"}},
|
||
{"canti", {"cantina"}},
|
||
{"cantr", {"cantera"}},
|
||
{"cap", {"capitão"}},
|
||
{"capt", {"capitan", "captain"}},
|
||
{"car", {"carrefour", "carré"}},
|
||
{"care", {"carrières", "carrière"}},
|
||
{"carr", {"carré"}},
|
||
{"carref", {"carrefour"}},
|
||
{"cau", {"carreau"}},
|
||
{"caus", {"causeway"}},
|
||
{"cav", {"cavée"}},
|
||
{"cbtiz", {"cobertizo"}},
|
||
{"cc", {"calçada", "centro comercial"}},
|
||
{"call", {"calleja", "callejón"}},
|
||
{"c", {"cesta", "carrer", "calle", "centre"}},
|
||
{"cckq", {"căn cứ không quân"}},
|
||
{"ccnh", {"calçadinha"}},
|
||
{"cct", {"circuit"}},
|
||
{"ccvcn", {"circunvalación"}},
|
||
{"cad", {"cadde"}},
|
||
{"cd", {"cadde", "caddesi"}},
|
||
{"cđ", {"cao đẳng"}},
|
||
{"cds", {"cul-de-sac"}},
|
||
{"ceb", {"ciclo do ensino básico"}},
|
||
{"ce", {"cove"}},
|
||
{"cee", {"colexio de educación especial", "colegio de educación especial"}},
|
||
{"cei", {"colegio de educación infantil", "colexio de educación infantil"}},
|
||
{"ceip", {"colexio de educación infantil e primaria", "colegio de educación infantil y primaria"}},
|
||
{"cel", {"coronel"}},
|
||
{"cem", {"cementiri"}},
|
||
{"cen", {"center", "centre"}},
|
||
{"cft", {"croft"}},
|
||
{"cgne", {"campagne"}},
|
||
{"ch", {"church", "chaussee", "chemin", "chairman", "chase"}},
|
||
{"che", {"chemins", "chemin"}},
|
||
{"chem", {"cheminements", "cheminement"}},
|
||
{"chi", {"charmille"}},
|
||
{"chl", {"chalet"}},
|
||
{"chor", {"chorążego", "chorąży"}},
|
||
{"chp", {"chapelle"}},
|
||
{"chs", {"chaussée", "chaussées"}},
|
||
{"cht", {"château"}},
|
||
{"chv", {"chemins vicinaux", "chemin vicinal"}},
|
||
{"ci", {"circuit"}},
|
||
{"cifp", {"centro integrado de formación profesional"}},
|
||
{"cint", {"cinturón", "cinturó"}},
|
||
{"cir", {"circle"}},
|
||
{"circt", {"circuit"}},
|
||
{"cite", {"cités", "cité"}},
|
||
{"cjla", {"callejuela"}},
|
||
{"cjón", {"callejón"}},
|
||
{"cjto", {"conjunto"}},
|
||
{"ck", {"creek"}},
|
||
{"clb", {"câu lạc bộ"}},
|
||
{"cl", {"close", "calle"}},
|
||
{"cllja", {"calleja"}},
|
||
{"cllón", {"callejón"}},
|
||
{"cllzo", {"callizo"}},
|
||
{"cloi", {"cloître"}},
|
||
{"clos", {"clos"}},
|
||
{"cm", {"câmara municipal"}},
|
||
{"cmdt", {"commandant", "comandante"}},
|
||
{"cmn", {"common"}},
|
||
{"cmno", {"camino"}},
|
||
{"cmpd", {"compound"}},
|
||
{"cnc", {"concourse"}},
|
||
{"cno", {"camino"}},
|
||
{"cnr", {"corner"}},
|
||
{"cnvto", {"convento"}},
|
||
{"cnwy", {"centreway"}},
|
||
{"co", {"county"}},
|
||
{"col", {"colonia", "col", "colonel"}},
|
||
{"coli", {"collines", "colline"}},
|
||
{"col·l", {"col·legi"}},
|
||
{"com", {"comissaria"}},
|
||
{"comend", {"comendador"}},
|
||
{"comm", {"common", "community", "commission"}},
|
||
{"compj", {"complejo"}},
|
||
{"conc", {"concession"}},
|
||
{"con", {"concourse"}},
|
||
{"cong", {"congressman"}},
|
||
{"cons", {"conselheiro"}},
|
||
{"convt", {"convent"}},
|
||
{"coop", {"cooperativa", "cooperative"}},
|
||
{"cor", {"corniches", "corniche", "coronel"}},
|
||
{"corr", {"correus"}},
|
||
{"coste", {"costera"}},
|
||
{"cote", {"côteau", "côte"}},
|
||
{"cott", {"cottage", "cottages"}},
|
||
{"cotts", {"cottages"}},
|
||
{"cov", {"cove"}},
|
||
{"cowy", {"crossway"}},
|
||
{"cp", {"codi postal", "col·legi públic"}},
|
||
{"cpd", {"compound"}},
|
||
{"cpg", {"camping"}},
|
||
{"cpl", {"corporal"}},
|
||
{"cps", {"copse"}},
|
||
{"cpt", {"captain"}},
|
||
{"cra", {"colexio rural agrupado", "carrera", "colegio rural agrupado"}},
|
||
{"crc", {"circus"}},
|
||
{"cr", {"creek", "crescent", "county route", "county road"}},
|
||
{"crcs", {"circus"}},
|
||
{"crd", {"crossroad"}},
|
||
{"cres", {"crescent"}},
|
||
{"crk", {"creek"}},
|
||
{"crn", {"corner"}},
|
||
{"crnrs", {"corners"}},
|
||
{"cro", {"carrero"}},
|
||
{"cró", {"carreró"}},
|
||
{"crois", {"croissant"}},
|
||
{"cross", {"crossing"}},
|
||
{"crrdo", {"corredor"}},
|
||
{"crrlo", {"corralillo"}},
|
||
{"crs", {"cours"}},
|
||
{"crsg", {"crossing"}},
|
||
{"crss", {"cross"}},
|
||
{"crst", {"crest"}},
|
||
{"crt", {"court"}},
|
||
{"crtil", {"carretil"}},
|
||
{"crtjo", {"cortijo"}},
|
||
{"csac", {"cul-de-sac"}},
|
||
{"cs", {"cross"}},
|
||
{"čs", {"československé", "československého", "československých"}},
|
||
{"csg", {"crossing"}},
|
||
{"csl", {"casal"}},
|
||
{"čsl", {"československej", "československé", "československého", "československých"}},
|
||
{"cso", {"corso"}},
|
||
{"csrio", {"caserío"}},
|
||
{"cstan", {"costanilla"}},
|
||
{"cst", {"castel", "crest"}},
|
||
{"cswy", {"causeway"}},
|
||
{"cta", {"cuesta"}},
|
||
{"ct", {"court", "công trường"}},
|
||
{"ctcp", {"công ty cổ phần"}},
|
||
{"ctra", {"carretera"}},
|
||
{"ctr", {"center", "contour", "centre"}},
|
||
{"ctre", {"central", "centre"}},
|
||
{"ctrin", {"carreterín"}},
|
||
{"ctrl", {"central"}},
|
||
{"cty", {"city", "công ty"}},
|
||
{"cty cp", {"công ty cổ phần"}},
|
||
{"ctyd", {"courtyard"}},
|
||
{"cutt", {"cutting"}},
|
||
{"cv", {"công viên", "cove", "cave"}},
|
||
{"cve", {"curve"}},
|
||
{"cvn", {"caravan"}},
|
||
{"cvvh", {"công viên văn hóa"}},
|
||
{"cway", {"causeway"}},
|
||
{"cyd", {"courtyard"}},
|
||
{"czada", {"calzada"}},
|
||
{"dª", {"dona"}},
|
||
{"dars", {"darse"}},
|
||
{"dav", {"deutscher alpenverein"}},
|
||
{"d´", {"de"}},
|
||
{"d", {"dom", "dona"}},
|
||
{"đ", {"đường"}},
|
||
{"deg", {"degrés", "degré"}},
|
||
{"demar", {"demarcación"}},
|
||
{"dep", {"deputado"}},
|
||
{"dep't", {"department"}},
|
||
{"dept", {"department", "departamento"}},
|
||
{"devn", {"deviation"}},
|
||
{"df", {"dorf"}},
|
||
{"đh", {"đại học"}},
|
||
{"dhsa", {"dehesa"}},
|
||
{"diag", {"diagonal"}},
|
||
{"dig", {"digues", "digue"}},
|
||
{"disem", {"diseminado"}},
|
||
{"distr", {"districte"}},
|
||
{"divers", {"diversion"}},
|
||
{"dkm", {"denkmal"}},
|
||
{"đl", {"đại lộ"}},
|
||
{"dle", {"dale"}},
|
||
{"dln", {"dolna", "dolne", "dolny"}},
|
||
{"dn", {"down", "downs"}},
|
||
{"dom", {"domaine", "domaines"}},
|
||
{"dq", {"duque"}},
|
||
{"dra", {"doctora", "doutora"}},
|
||
{"drª", {"doutora"}},
|
||
{"dr", {"doktora", "doktorky", "doktor", "dokter", "doctor", "drive", "doutora", "doutor", "doktora"}},
|
||
{"drec", {"drecera"}},
|
||
{"drs", {"doctorandus"}},
|
||
{"drv", {"drive"}},
|
||
{"drwy", {"driveway"}},
|
||
{"ds", {"dominee"}},
|
||
{"đs", {"đường sắt"}},
|
||
{"dsg", {"descentes", "descente"}},
|
||
{"dstr", {"distributor"}},
|
||
{"dta", {"dreta"}},
|
||
{"dt", {"deutsches", "deutsch", "deutscher", "deutsche"}},
|
||
{"dto", {"direito"}},
|
||
{"dv", {"drive"}},
|
||
{"dvwy", {"driveway"}},
|
||
{"dwy", {"driveway"}},
|
||
{"dyg", {"dayang"}},
|
||
{"dz", {"duże", "duża", "duży"}},
|
||
{"dż", {"duże", "duża", "duży"}},
|
||
{"eb", {"escola básica"}},
|
||
{"éch", {"échangeur"}},
|
||
{"ecl", {"écluses", "écluse"}},
|
||
{"écl", {"écluses", "écluse"}},
|
||
{"ed", {"edifício"}},
|
||
{"edf", {"edifício"}},
|
||
{"edg", {"edge"}},
|
||
{"edif", {"edificio"}},
|
||
{"e", {"east"}},
|
||
{"egl", {"église"}},
|
||
{"égl", {"église"}},
|
||
{"ehem", {"ehemalige", "ehemaliger", "ehemaliges"}},
|
||
{"eighth", {"8th"}},
|
||
{"eighteenth", {"18th"}},
|
||
{"elb", {"elbow"}},
|
||
{"eleventh", {"11th"}},
|
||
{"emb", {"embaixador"}},
|
||
{"em", {"estrada municipal"}},
|
||
{"empr", {"empresa"}},
|
||
{"enc", {"enclos"}},
|
||
{"en", {"estrada nacional", "enceinte"}},
|
||
{"enf", {"enfermeiro"}},
|
||
{"enfo", {"enfermeiro"}},
|
||
{"enfº", {"enfermeiro"}},
|
||
{"engª", {"engenheira"}},
|
||
{"eng", {"engenheira", "engenheiro"}},
|
||
{"engº", {"engenheiro"}},
|
||
{"entd", {"entrada"}},
|
||
{"ent", {"entrance"}},
|
||
{"entl", {"entresòl"}},
|
||
{"entr", {"entrada"}},
|
||
{"env", {"enclave"}},
|
||
{"ep", {"empresa pública"}},
|
||
{"er", {"estrada regional"}},
|
||
{"err", {"errepidea"}},
|
||
{"esca", {"escalera"}},
|
||
{"escal", {"escalinata"}},
|
||
{"esc", {"escalier", "escadas", "escala", "escaliers", "escola"}},
|
||
{"escnh", {"escadinhas"}},
|
||
{"esgl", {"església"}},
|
||
{"eslda", {"espalda"}},
|
||
{"espa", {"espace"}},
|
||
{"esp", {"esplanade", "esplanades"}},
|
||
{"espl", {"esplanade"}},
|
||
{"esq", {"esquerdo", "esquina"}},
|
||
{"estac", {"estacionament"}},
|
||
{"estcn", {"estación"}},
|
||
{"estda", {"estrada"}},
|
||
{"est", {"estate", "estació"}},
|
||
{"estr", {"estrada"}},
|
||
{"etang", {"étang"}},
|
||
{"étang", {"étang"}},
|
||
{"etar", {"estação de tratamento de águas residuais"}},
|
||
{"etorb", {"etorbidea"}},
|
||
{"eu", {"escola universitària"}},
|
||
{"ex", {"extension"}},
|
||
{"exp", {"expressway"}},
|
||
{"expla", {"explanada"}},
|
||
{"expwy", {"expressway"}},
|
||
{"expy", {"expressway"}},
|
||
{"exten", {"extension"}},
|
||
{"ext", {"extension"}},
|
||
{"extrm", {"extramuros"}},
|
||
{"extrr", {"extrarradio"}},
|
||
{"fac", {"facultat"}},
|
||
{"fawy", {"fairway"}},
|
||
{"fb", {"fabrik"}},
|
||
{"fbrca", {"fábrica"}},
|
||
{"fca", {"fábrica", "finca"}},
|
||
{"fc", {"futebol clube"}},
|
||
{"fdc", {"fundacul"}},
|
||
{"fd", {"field"}},
|
||
{"ff", {"freiwillige feuerwehr"}},
|
||
{"fg", {"faubourg"}},
|
||
{"fh", {"fachhochschule", "forsthaus"}},
|
||
{"fit", {"firetrail"}},
|
||
{"fifth", {"5th"}},
|
||
{"fifteenth", {"15th"}},
|
||
{"first", {"1st"}},
|
||
{"flat", {"flat"}},
|
||
{"fl", {"flat"}},
|
||
{"fnd", {"fundătura"}},
|
||
{"folw", {"follow"}},
|
||
{"fon", {"fontaine"}},
|
||
{"form", {"forum", "formation"}},
|
||
{"fos", {"fosses", "fosse"}},
|
||
{"fourth", {"4th"}},
|
||
{"fourteenth", {"14th"}},
|
||
{"foyr", {"foyer"}},
|
||
{"fr", {"father", "frontage", "frei"}},
|
||
{"frm", {"ferme", "fermes"}},
|
||
{"frnt", {"front"}},
|
||
{"frtg", {"frontage"}},
|
||
{"frwy", {"freeway"}},
|
||
{"fshr", {"foreshore"}},
|
||
{"fsr", {"forest service road"}},
|
||
{"ft", {"fort", "frente"}},
|
||
{"ftrk", {"fire track"}},
|
||
{"ftwy", {"footway"}},
|
||
{"fwy", {"freeway"}},
|
||
{"fy", {"fairway", "ferry"}},
|
||
{"ga", {"gates", "gate"}},
|
||
{"gale", {"galería"}},
|
||
{"gal", {"galerie", "general", "galeries"}},
|
||
{"garn", {"garenne"}},
|
||
{"gbd", {"grand boulevard"}},
|
||
{"gde", {"gemeinde"}},
|
||
{"gden", {"grands ensembles", "grand ensemble"}},
|
||
{"gd", {"gasilski dom"}},
|
||
{"gdn", {"gardens", "garden"}},
|
||
{"gdns", {"gardens"}},
|
||
{"gebr", {"gebroeders"}},
|
||
{"gen", {"generaal", "generała", "generála", "general"}},
|
||
{"geo", {"george"}},
|
||
{"g", {"gata", "gasse", "großes", "großer", "gatan", "große", "gaten", "gate", "gatvė"}},
|
||
{"gg", {"gang"}},
|
||
{"ghf", {"gasthof"}},
|
||
{"gh", {"gasthaus"}},
|
||
{"gi", {"gardu induk"}},
|
||
{"g:la", {"gamla"}},
|
||
{"glde", {"glade"}},
|
||
{"gld", {"glade"}},
|
||
{"glen", {"glen"}},
|
||
{"gl", {"glade", "gammel,gamle"}},
|
||
{"gln", {"glen"}},
|
||
{"gly", {"gully"}},
|
||
{"gn", {"green", "gunung"}},
|
||
{"gnr", {"guarda nacional republicana"}},
|
||
{"gov", {"governor"}},
|
||
{"gpe", {"groupe", "groupes"}},
|
||
{"gpt", {"groupement"}},
|
||
{"gra", {"grange"}},
|
||
{"grg", {"gymnasium und realgymnasium"}},
|
||
{"gr", {"grande rue", "grandes rues", "gracht", "grand’rue", "gränd", "graben", "grovet", "gränden", "grove", "großes", "große", "großer"}},
|
||
{"gri", {"grille"}},
|
||
{"grim", {"grimpette"}},
|
||
{"grnd", {"ground"}},
|
||
{"grnds", {"grounds"}},
|
||
{"grn", {"górny", "green", "górna", "górne"}},
|
||
{"gro", {"grove"}},
|
||
{"gta", {"glorieta"}},
|
||
{"gte", {"gates", "gate"}},
|
||
{"gt", {"gata", "gaten", "gate"}},
|
||
{"gwy", {"gateway"}},
|
||
{"hab", {"habitação", "habitació"}},
|
||
{"hak", {"handelsakademie"}},
|
||
{"ham", {"hameau", "hameaux"}},
|
||
{"harbr", {"harbour"}},
|
||
{"hasch", {"handelsschule"}},
|
||
{"hbf", {"hauptbahnhof"}},
|
||
{"hbr", {"harbor", "harbour"}},
|
||
{"hch", {"haut chemin", "hauts chemins"}},
|
||
{"hd", {"head", "heads"}},
|
||
{"hghlds", {"highlands"}},
|
||
{"hgts", {"heights"}},
|
||
{"h", {"höhle", "hohes", "hotel", "hohe", "hoher"}},
|
||
{"hint", {"hinteres", "hinterer", "hinter", "hintere"}},
|
||
{"hip", {"hippodrome"}},
|
||
{"hipód", {"hipódromo"}},
|
||
{"hird", {"highroad"}},
|
||
{"hiway", {"highway"}},
|
||
{"hj", {"haji"}},
|
||
{"hle", {"halle", "halles"}},
|
||
{"hl", {"heiliger", "heiliges", "heilige", "hill", "hills"}},
|
||
{"hlm", {"hlm"}},
|
||
{"hls", {"hills"}},
|
||
{"ho", {"house"}},
|
||
{"hon", {"honorable"}},
|
||
{"hosp", {"hospital"}},
|
||
{"hrd", {"highroad"}},
|
||
{"hr", {"hrabiego", "hrabiny", "hrabia", "hrabina"}},
|
||
{"hse", {"house"}},
|
||
{"hs", {"haus", "high school"}},
|
||
{"hst", {"haltestelle"}},
|
||
{"ht", {"heights", "hinteres", "hinterer", "hinter…", "hintere"}},
|
||
{"htl", {"höhere technische lehranstalt"}},
|
||
{"hts", {"heights"}},
|
||
{"htt", {"hütte"}},
|
||
{"hvn", {"haven"}},
|
||
{"hwy", {"highway"}},
|
||
{"ic", {"itinerário complementar"}},
|
||
{"ies", {"instituto de educación secundaria"}},
|
||
{"iii", {"terza", "trzecie", "trzeci", "trzecia", "terzo"}},
|
||
{"ii", {"seconda", "drugi", "druga", "secondo", "segundo", "drugie"}},
|
||
{"ile", {"île"}},
|
||
{"ima", {"irmã"}},
|
||
{"imª", {"irmã"}},
|
||
{"im", {"irmã", "irmão"}},
|
||
{"imm", {"immeubles", "immeuble"}},
|
||
{"imo", {"irmão"}},
|
||
{"imº", {"irmão"}},
|
||
{"imp", {"impasse", "impasses"}},
|
||
{"ind", {"industrial"}},
|
||
{"inf", {"infante"}},
|
||
{"ing", {"inžiniera", "inžinierky", "ingenieur", "inženýra", "inženýrky"}},
|
||
{"inst", {"instituto"}},
|
||
{"intg", {"interchange"}},
|
||
{"int", {"interior", "internationaler", "intrarea", "internationales", "internationale"}},
|
||
{"intl", {"international"}},
|
||
{"intrarea", {"intrarea"}},
|
||
{"intr", {"intrarea"}},
|
||
{"ip", {"itinerário principal", "idrottsplats"}},
|
||
{"i", {"prima", "pierwszy", "pierwsza", "in", "island", "pierwsze", "primo", "im"}},
|
||
{"ir", {"ingenieur", "insinyur"}},
|
||
{"is", {"island"}},
|
||
{"iv", {"quattro", "quarta", "quarto"}},
|
||
{"ix", {"nona", "nono"}},
|
||
{"jard", {"jardins", "jardin"}},
|
||
{"jctn", {"junction"}},
|
||
{"jdín", {"jardín"}},
|
||
{"jend", {"jenderal"}},
|
||
{"jh", {"jagdhaus"}},
|
||
{"jhr", {"jonkheer"}},
|
||
{"jhtt", {"jagdhütte"}},
|
||
{"jl", {"jalan"}},
|
||
{"jln", {"jalan"}},
|
||
{"jnc", {"junction"}},
|
||
{"jrd", {"jardim"}},
|
||
{"jr", {"júnior", "junior"}},
|
||
{"jte", {"jetées", "jetée"}},
|
||
{"kab", {"kabupaten"}},
|
||
{"kag", {"kagawad"}},
|
||
{"ka", {"kereta api", "kläranlage"}},
|
||
{"kan", {"kanunnik"}},
|
||
{"kap", {"kapelle", "kapitan"}},
|
||
{"kapt", {"kapitan"}},
|
||
{"kard", {"kardinaal", "kardynał"}},
|
||
{"kcn", {"khu công nghiệp"}},
|
||
{"kdl", {"khu du lịch"}},
|
||
{"kec", {"kecamatan"}},
|
||
{"kel", {"kelurahan"}},
|
||
{"kga", {"kleingartenanlage"}},
|
||
{"kgg", {"kagalang-galang"}},
|
||
{"kg", {"katastralgemeinde", "…kogel", "kampong", "kogel"}},
|
||
{"kgv", {"kleingartenverein"}},
|
||
{"kh", {"krankenhaus"}},
|
||
{"kj", {"kuja"}},
|
||
{"k", {"kalea", "katu", "koło", "kolo", "kort(e)"}},
|
||
{"kl", {"konzentrationslager", "klein…", "kleines", "kleiner", "kleine", "kylä"}},
|
||
{"knm", {"khu nghỉ mát"}},
|
||
{"kol", {"kolonel", "kolonia"}},
|
||
{"kon", {"koning", "koningin"}},
|
||
{"kontradm", {"kontradmirała", "kontradmirał"}},
|
||
{"kp", {"kampung"}},
|
||
{"kpl", {"kapelle"}},
|
||
{"kpr", {"kaprala", "kapral"}},
|
||
{"kpt", {"kapitana", "kapitan", "kapitána"}},
|
||
{"kri", {"kaari"}},
|
||
{"ks", {"księdza", "ksiądz", "księcia", "książe", "khách sạn"}},
|
||
{"kte", {"kort"}},
|
||
{"kz", {"kreuz", "konzentrationslager"}},
|
||
{"la", {"lane"}},
|
||
{"landng", {"landing"}},
|
||
{"lda", {"limitada"}},
|
||
{"ldg", {"landing", "lodge"}},
|
||
{"ld", {"lieu-dit"}},
|
||
{"leve", {"levée"}},
|
||
{"lg", {"largo", "lugar"}},
|
||
{"lgn", {"lagoon"}},
|
||
{"lit", {"little"}},
|
||
{"lj", {"loja"}},
|
||
{"lkh", {"landeskrankenhaus"}},
|
||
{"lk", {"link"}},
|
||
{"lkout", {"lookout"}},
|
||
{"lkt", {"lookout"}},
|
||
{"l", {"lange", "lakes", "lilla"}},
|
||
{"ll", {"lille"}},
|
||
{"llnra", {"llanura"}},
|
||
{"lmts", {"limits"}},
|
||
{"ln", {"line", "laan", "lane"}},
|
||
{"lnwy", {"laneway"}},
|
||
{"loc", {"località"}},
|
||
{"lor", {"lorong"}},
|
||
{"loteam", {"loteamento"}},
|
||
{"lot", {"lotissement", "lotissements"}},
|
||
{"low", {"lower"}},
|
||
{"lp", {"loop"}},
|
||
{"lr", {"lower"}},
|
||
{"lt", {"lote", "lieutenant", "little"}},
|
||
{"lug", {"lugar"}},
|
||
{"luit", {"luitenant"}},
|
||
{"lung", {"lungsod"}},
|
||
{"lwr", {"lower"}},
|
||
{"mag", {"magister"}},
|
||
{"mah", {"mahalle"}},
|
||
{"maj", {"major"}},
|
||
{"malec", {"malecón"}},
|
||
{"mal", {"marechal", "maréchal"}},
|
||
{"ma", {"maria", "magistratsabteilung"}},
|
||
{"man", {"manoir"}},
|
||
{"mans", {"mansions"}},
|
||
{"mar", {"marche", "marches"}},
|
||
{"marsz", {"marszałka (marszałek)"}},
|
||
{"maz", {"mazowiecka", "mazowiecki", "mazowieckie"}},
|
||
{"md", {"mead"}},
|
||
{"mdr", {"meander"}},
|
||
{"mdw", {"meadow", "meadows"}},
|
||
{"mdws", {"meadows"}},
|
||
{"med", {"medical"}},
|
||
{"mej", {"mejuffrouw"}},
|
||
{"me", {"madre", "mestre"}},
|
||
{"mem", {"memorial"}},
|
||
{"merc", {"mercado"}},
|
||
{"met", {"métro"}},
|
||
{"mét", {"métro"}},
|
||
{"mevr", {"mevrouw"}},
|
||
{"mf", {"maison forestière"}},
|
||
{"mgr", {"monseigneur"}},
|
||
{"mh", {"mahalle"}},
|
||
{"mid", {"middle"}},
|
||
{"mil", {"military"}},
|
||
{"mi", {"mile"}},
|
||
{"min", {"minister", "ministro"}},
|
||
{"mjr", {"majora", "major"}},
|
||
{"mkt", {"markt", "market"}},
|
||
{"mł", {"mała", "mały", "małe"}},
|
||
{"ml", {"mała", "mały", "mall", "małe"}},
|
||
{"mln", {"moulin", "moulins"}},
|
||
{"m", {"municipal", "miasto"}},
|
||
{"mndr", {"meander"}},
|
||
{"mn", {"mossèn"}},
|
||
{"mnr", {"manor"}},
|
||
{"mnt", {"muntele", "maantee"}},
|
||
{"mon", {"monument"}},
|
||
{"mons", {"monsenhor"}},
|
||
{"mpal", {"municipal"}},
|
||
{"mq", {"marquês"}},
|
||
{"mrdor", {"mirador"}},
|
||
{"mr", {"meester", "meander"}},
|
||
{"ms", {"middle school"}},
|
||
{"mte", {"montée", "montées"}},
|
||
{"mtir", {"monestir"}},
|
||
{"mt", {"mount", "mont", "muntele"}},
|
||
{"mtn", {"mountain", "mountains"}},
|
||
{"mto", {"maestro"}},
|
||
{"mtrio", {"monasterio"}},
|
||
{"mtwy", {"motorway"}},
|
||
{"mun", {"municipal"}},
|
||
{"mus", {"museum", "museu", "musée"}},
|
||
{"mva", {"müllverbrennungsanlage"}},
|
||
{"mw", {"mews"}},
|
||
{"mwy", {"motorway"}},
|
||
{"mz", {"manzana"}},
|
||
{"nábr", {"nábrežie"}},
|
||
{"nábř", {"nábřeží"}},
|
||
{"nac", {"nacional"}},
|
||
{"nám", {"námestie", "náměstí"}},
|
||
{"n:a", {"norra"}},
|
||
{"nª", {"nossa"}},
|
||
{"nd", {"niedere", "niederes", "niederer"}},
|
||
{"ndr", {"nordre"}},
|
||
{"ne", {"northeast"}},
|
||
{"nh", {"nhà hát"}},
|
||
{"nhs", {"national high school"}},
|
||
{"ninth", {"9th"}},
|
||
{"nineteenth", {"19th"}},
|
||
{"nk", {"nook"}},
|
||
{"nms", {"neue mittelschule"}},
|
||
{"n", {"nowy", "nowa", "nossa", "norra", "número", "north", "nosso", "nacional", "nowe"}},
|
||
{"nö", {"niederösterreichischer", "niederösterreichisches", "niederösterreich", "niederösterreichische"}},
|
||
{"nº", {"número"}},
|
||
{"nook", {"nook"}},
|
||
{"nördl", {"nördlicher", "nördliche", "nördliches"}},
|
||
{"no", {"சாலை", "salai", "nomor", "vazhi", "வழி"}},
|
||
{"np", {"nationalpark", "national park"}},
|
||
{"nra", {"national recreation area"}},
|
||
{"nre", {"nombre"}},
|
||
{"nr", {"nørre", "nummer"}},
|
||
{"nsg", {"naturschutzgebiet"}},
|
||
{"ns", {"nossa senhora"}},
|
||
{"ntđ", {"nhà thi đấu"}},
|
||
{"nte", {"nouvelle route"}},
|
||
{"nt", {"nhà thờ"}},
|
||
{"ntra", {"nuestra"}},
|
||
{"núm", {"número"}},
|
||
{"nw", {"nowy", "nowa", "nowe", "northwest"}},
|
||
{"nwra", {"national wildlife refuge area"}},
|
||
{"nz", {"noordzijde"}},
|
||
{"ö:a", {"östra"}},
|
||
{"öav", {"österreichischer alpenverein"}},
|
||
{"obj", {"objekt"}},
|
||
{"ob", {"oberer", "obere", "oberes"}},
|
||
{"ögv", {"österreichischer gebirgsverein"}},
|
||
{"olv", {"onze-lieve-vrouw"}},
|
||
{"o", {"ob"}},
|
||
{"oö", {"oberösterreichisches", "oberösterreich", "oberösterreichische", "oberösterreichischer"}},
|
||
{"oo", {"ojców"}},
|
||
{"ö", {"östra"}},
|
||
{"orch", {"orchard"}},
|
||
{"os", {"osiedlu", "osiedle"}},
|
||
{"oš", {"osnovna šola"}},
|
||
{"österr", {"österreichisches", "österreichische", "österreichischer"}},
|
||
{"östl", {"östlicher", "östliche", "östliches"}},
|
||
{"öst", {"österreichisches", "österreichische", "österreichischer"}},
|
||
{"ötk", {"österreichischer touristenklub"}},
|
||
{"otlk", {"outlook"}},
|
||
{"out", {"outlook"}},
|
||
{"oz", {"oostzijde"}},
|
||
{"pae", {"petite avenue"}},
|
||
{"palac", {"palacio"}},
|
||
{"pal", {"palais"}},
|
||
{"pam", {"pamantasan"}},
|
||
{"pant", {"pantano"}},
|
||
{"parc", {"parc", "parcel·la", "parcs"}},
|
||
{"park", {"park"}},
|
||
{"par", {"parada"}},
|
||
{"parti", {"particular"}},
|
||
{"part", {"particular"}},
|
||
{"pas", {"passage"}},
|
||
{"pass", {"passage", "passes", "passe", "pass"}},
|
||
{"past", {"pastoor"}},
|
||
{"path", {"path"}},
|
||
{"pat", {"patio"}},
|
||
{"pav", {"pavillons", "pavillon", "pavilhão", "pavelló"}},
|
||
{"pbdo", {"poblado"}},
|
||
{"pblo", {"pueblo"}},
|
||
{"pça", {"plaça"}},
|
||
{"pch", {"porche", "petit chemin"}},
|
||
{"pcp", {"police community precinct"}},
|
||
{"pc", {"praça"}},
|
||
{"pç", {"praça"}},
|
||
{"pctª", {"praceta"}},
|
||
{"pct", {"precinct", "praceta"}},
|
||
{"pda", {"pujada"}},
|
||
{"pde", {"parade"}},
|
||
{"pdís", {"passadís"}},
|
||
{"pdse", {"paradise"}},
|
||
{"pe", {"padre"}},
|
||
{"peri", {"périphérique"}},
|
||
{"pgd", {"prostovoljno gasilsko društvo"}},
|
||
{"pg", {"pengiran", "passeig"}},
|
||
{"pgr", {"penger"}},
|
||
{"phil", {"philippines"}},
|
||
{"ph", {"phường", "phase"}},
|
||
{"phwy", {"pathway"}},
|
||
{"piata", {"piața"}},
|
||
{"piată", {"piața"}},
|
||
{"piaţa", {"piața"}},
|
||
{"piaţă", {"piața"}},
|
||
{"piață", {"piața"}},
|
||
{"piaz", {"piazza"}},
|
||
{"pim", {"petite impasse"}},
|
||
{"pi", {"polígon industrial"}},
|
||
{"pj", {"polícia judiciária"}},
|
||
{"pje", {"pasaje"}},
|
||
{"pkg", {"parking"}},
|
||
{"pkld", {"parklands"}},
|
||
{"pko", {"puistikko"}},
|
||
{"pk", {"pike", "park", "punt quilomètric"}},
|
||
{"pkt", {"pocket"}},
|
||
{"pkwy", {"parkway"}},
|
||
{"pky", {"parkway"}},
|
||
{"plag", {"plages", "plage"}},
|
||
{"plan", {"plan"}},
|
||
{"plat", {"plateau"}},
|
||
{"plci", {"placis"}},
|
||
{"ple", {"passerelle", "passerelles"}},
|
||
{"plk", {"plukovníka"}},
|
||
{"płk", {"pułkownika (pułkownik)"}},
|
||
{"pln", {"plaine", "plein"}},
|
||
{"pl",
|
||
{"placu", "plaça", "platz", "plain", "placem", "planta", "plass", "place", "plaza", "plassen", "plains", "plats",
|
||
"platsen", "plac"}},
|
||
{"plt", {"plateau", "plateaux"}},
|
||
{"plut", {"plutonowego", "plutonowy"}},
|
||
{"plza", {"plaza"}},
|
||
{"plzla", {"plazuela"}},
|
||
{"plz", {"plaza"}},
|
||
{"pn", {"passage à niveau"}},
|
||
{"pnt", {"pointe", "point"}},
|
||
{"pobl", {"població"}},
|
||
{"políg", {"polígono"}},
|
||
{"pol. ind", {"polígon industrial"}},
|
||
{"pol", {"polígon"}},
|
||
{"pont", {"ponts", "pont"}},
|
||
{"po", {"post office"}},
|
||
{"por", {"porucznika", "porucznik", "poručíka"}},
|
||
{"porq", {"portique", "portiques"}},
|
||
{"port", {"port"}},
|
||
{"pot", {"poterne"}},
|
||
{"pour", {"pourtour"}},
|
||
{"p", {"pfad", "polku", "phường", "pater", "paseo"}},
|
||
{"pplk", {"podplukovníka"}},
|
||
{"ppłk", {"ppułkownika", "podpułkownika", "podpułkownik"}},
|
||
{"ppor", {"pporucznika", "podporucznika", "podporucznik", "podporučíka"}},
|
||
{"pq", {"parque"}},
|
||
{"pque", {"parque"}},
|
||
{"pral", {"principal"}},
|
||
{"pre", {"pré"}},
|
||
{"presid", {"presidente"}},
|
||
{"pres", {"president"}},
|
||
{"prk", {"purok"}},
|
||
{"prm", {"promenade"}},
|
||
{"profª", {"professora"}},
|
||
{"prof", {"professora", "professor", "profesora", "profesorky", "profesor"}},
|
||
{"proj", {"projectada", "projetada"}},
|
||
{"prolng", {"prolongamento"}},
|
||
{"prol", {"prolongación"}},
|
||
{"prom", {"promenade"}},
|
||
{"provl", {"provincial"}},
|
||
{"prov", {"province"}},
|
||
{"p+r", {"parking relais", "parc relais"}},
|
||
{"pr", {"praça", "prinses", "prins", "prospektas"}},
|
||
{"prq", {"presqu’île"}},
|
||
{"prtco", {"pórtico"}},
|
||
{"prt", {"petite route"}},
|
||
{"prv", {"parvis"}},
|
||
{"przla", {"prazuela"}},
|
||
{"psge", {"passage"}},
|
||
{"psje", {"pasaje"}},
|
||
{"psllo", {"pasillo"}},
|
||
{"ps", {"pass", "puisto"}},
|
||
{"psp", {"polícia de segurança pública"}},
|
||
{"pst", {"puiestee"}},
|
||
{"psty", {"péristyle"}},
|
||
{"ptal", {"portal"}},
|
||
{"pţa", {"piața"}},
|
||
{"pța", {"piața"}},
|
||
{"pta", {"porta", "petite allée", "piața", "petites allées", "puerta"}},
|
||
{"ptda", {"partida"}},
|
||
{"pte", {"porte", "puente"}},
|
||
{"ptge", {"passatge"}},
|
||
{"ptilo", {"portillo"}},
|
||
{"pto", {"puerto", "pátio"}},
|
||
{"pt", {"port", "point", "phi trường"}},
|
||
{"ptr", {"petite rue"}},
|
||
{"ptway", {"pathway"}},
|
||
{"pvt", {"private"}},
|
||
{"pway", {"pathway"}},
|
||
{"pwy", {"pathway", "parkway"}},
|
||
{"pza", {"plaza"}},
|
||
{"pzo", {"pasadizo"}},
|
||
{"pzta", {"plazoleta"}},
|
||
{"qdgl", {"quadrangle"}},
|
||
{"qd", {"quadra", "quadrant"}},
|
||
{"qdrt", {"quadrant"}},
|
||
{"ql", {"quốc lộ"}},
|
||
{"q", {"quadra", "quận", "quelle"}},
|
||
{"qta", {"quinta"}},
|
||
{"qt", {"quảng trường"}},
|
||
{"quad", {"quad"}},
|
||
{"qua", {"quartier"}},
|
||
{"qu", {"quelle", "quai"}},
|
||
{"qy", {"quay", "quays"}},
|
||
{"qys", {"quays"}},
|
||
{"rac", {"raccourci"}},
|
||
{"raid", {"raidillon"}},
|
||
{"rang", {"rang"}},
|
||
{"ra", {"ramble"}},
|
||
{"rª", {"ribeira"}},
|
||
{"ras", {"rautatieasema"}},
|
||
{"rbla", {"rambla"}},
|
||
{"rbra", {"ribera"}},
|
||
{"rcda", {"rinconada"}},
|
||
{"rch", {"reach"}},
|
||
{"rcón", {"rincón"}},
|
||
{"rc", {"rés-do-chão"}},
|
||
{"rda", {"ronda"}},
|
||
{"rdge", {"ridge"}},
|
||
{"rdg", {"ridge"}},
|
||
{"rdpt", {"rond-point"}},
|
||
{"rd", {"road"}},
|
||
{"rdsd", {"roadside"}},
|
||
{"rds", {"roads"}},
|
||
{"rdtj", {"raudteejaam"}},
|
||
{"rdt", {"raudtee"}},
|
||
{"rdwy", {"roadway"}},
|
||
{"rdy", {"roadway"}},
|
||
{"rem", {"rempart"}},
|
||
{"rep", {"representative"}},
|
||
{"resid", {"residencial"}},
|
||
{"res", {"reservation", "reserve", "reservoir", "résidence", "résidences", "residencias", "residencia"}},
|
||
{"rest", {"rest"}},
|
||
{"rge", {"range"}},
|
||
{"rg", {"range"}},
|
||
{"rgwy", {"ridgeway"}},
|
||
{"rh", {"rhein", "rạp hát"}},
|
||
{"ribª", {"ribeira"}},
|
||
{"rib", {"ribeirão", "ribeira"}},
|
||
{"ri", {"rise"}},
|
||
{"rise", {"rise"}},
|
||
{"riv", {"river"}},
|
||
{"rks", {"rocks"}},
|
||
{"rle", {"ruelle", "ruelles"}},
|
||
{"rmbl", {"ramble"}},
|
||
{"rnde", {"ronde"}},
|
||
{"rnd", {"round"}},
|
||
{"rnge", {"range"}},
|
||
{"rn", {"rinne"}},
|
||
{"robt", {"robert"}},
|
||
{"roc", {"roc", "rocade"}},
|
||
{"roqt", {"roquet"}},
|
||
{"rotm", {"rotmistrza", "rotmistrz"}},
|
||
{"rot", {"rotunda", "rotonda"}},
|
||
{"row", {"row"}},
|
||
{"rowy", {"right of way"}},
|
||
{"rpe", {"rampe"}},
|
||
{"rpt", {"rond point"}},
|
||
{"r", {"river", "ruine", "regional", "rio", "rue", "rua", "raitti", "rues"}},
|
||
{"rsbl", {"rosebowl"}},
|
||
{"rs", {"rumah sakit"}},
|
||
{"rst", {"rest"}},
|
||
{"rsud", {"rumah sakit umum daerah"}},
|
||
{"rtda", {"rotonda"}},
|
||
{"rtd", {"rotonde"}},
|
||
{"rte", {"route", "routes"}},
|
||
{"rtn", {"return"}},
|
||
{"rt", {"ranta", "retreat", "route"}},
|
||
{"rtt", {"retreat"}},
|
||
{"rty", {"rotary"}},
|
||
{"rvra", {"riviera"}},
|
||
{"rvr", {"river"}},
|
||
{"rvwy", {"riverway"}},
|
||
{"rww", {"rundwanderweg"}},
|
||
{"sanat", {"sanatorio"}},
|
||
{"santu", {"santuario"}},
|
||
{"sarg", {"sargento"}},
|
||
{"sª", {"senhora"}},
|
||
{"sa", {"sociedade anónima"}},
|
||
{"s:a", {"södra"}},
|
||
{"savinj", {"savinjski"}},
|
||
{"sbg", {"salzburger", "salzburg"}},
|
||
{"sbqt", {"sân bay quốc tế"}},
|
||
{"sb", {"sân bay"}},
|
||
{"sbwy", {"subway"}},
|
||
{"schl", {"schloss"}},
|
||
{"sc", {"strada comunale", "sport clube"}},
|
||
{"sct", {"scout"}},
|
||
{"scv", {"sub-cave"}},
|
||
{"sdla", {"stradela"}},
|
||
{"sdlg", {"siedlung"}},
|
||
{"sdng", {"siding"}},
|
||
{"sdn", {"sekolah dasar negeri"}},
|
||
{"sdr", {"søndre", "sønder"}},
|
||
{"sd", {"strand", "sekolah dasar"}},
|
||
{"second", {"2nd"}},
|
||
{"sect", {"sector"}},
|
||
{"sedra", {"sendera"}},
|
||
{"send", {"sendero"}},
|
||
{"sen", {"sente", "senator", "sentiers", "sentier", "sentes"}},
|
||
{"sent", {"sentier"}},
|
||
{"seventh", {"7th"}},
|
||
{"seventeenth", {"17th"}},
|
||
{"se", {"southeast"}},
|
||
{"sgda", {"sagrada"}},
|
||
{"sg", {"schottergrube", "sungai", "sandgrube"}},
|
||
{"sgt", {"sagrat", "sergeant"}},
|
||
{"shs", {"senior high school"}},
|
||
{"sh", {"state highway"}},
|
||
{"shun", {"shunt"}},
|
||
{"shwy", {"state highway"}},
|
||
{"sídl", {"sídlisko", "sídliště"}},
|
||
{"sixth", {"6th"}},
|
||
{"sixteenth", {"16th"}},
|
||
{"sk", {"sokak", "sokağı"}},
|
||
{"skv", {"skveras"}},
|
||
{"slj", {"sobre-loja"}},
|
||
{"slov", {"slovenskih"}},
|
||
{"slpe", {"slope"}},
|
||
{"sman", {"sekolah menengah atas negeri"}},
|
||
{"sma", {"sekolah menengah atas"}},
|
||
{"smk", {"sekolah menengah kejuruan"}},
|
||
{"smpn", {"sekolah menengah pertama negeri"}},
|
||
{"smp", {"sekolah menengah pertama"}},
|
||
{"smz", {"sozialmedizinisches zentrum"}},
|
||
{"snd", {"sound"}},
|
||
{"sngl", {"singel"}},
|
||
{"snr", {"señor"}},
|
||
{"sn", {"san", "sem número"}},
|
||
{"soc", {"sociedade"}},
|
||
{"sok", {"sokak", "sokağı"}},
|
||
{"sort", {"sortida"}},
|
||
{"soseaua", {"șoseaua"}},
|
||
{"so", {"sitio", "south"}},
|
||
{"sos", {"șoseaua"}},
|
||
{"spg", {"simpang"}},
|
||
{"splaiul", {"splaiul"}},
|
||
{"spl", {"splaiul"}},
|
||
{"sp", {"strada provinciale", "szkoła podstawowa", "splaiul", "spodnja", "spodnji", "spitze", "spodnje"}},
|
||
{"sq", {"square", "superquadra"}},
|
||
{"srª", {"senhora"}},
|
||
{"sra", {"senhora", "senora", "señora"}},
|
||
{"sr", {"srednje", "strada regionale", "senior", "srednja", "senhor", "srednji", "señor", "sister", "state route"}},
|
||
{"s", {"santo", "senhora", "sant'", "santa", "south", "são", "san", "södra", "senhor", "see"}},
|
||
{"ss", {"simpang susun", "santi", "strada statale", "saints"}},
|
||
{"śś", {"świętych", "święci"}},
|
||
{"s:ta", {"sankta"}},
|
||
{"stª", {"santa"}},
|
||
{"sta", {"santa", "station"}},
|
||
{"stas", {"santas"}},
|
||
{"staz", {"stazione"}},
|
||
{"stb", {"steinbruch"}},
|
||
{"stde", {"stade"}},
|
||
{"ste", {"sainte"}},
|
||
{"stg", {"stiege"}},
|
||
{"sth", {"south"}},
|
||
{"stn", {"station"}},
|
||
{"sto", {"santo"}},
|
||
{"stº", {"santo"}},
|
||
{"stos", {"santos"}},
|
||
{"strada", {"strada"}},
|
||
{"stra", {"strand", "strada"}},
|
||
{"strp", {"strip"}},
|
||
{"str", {"strasse", "stary", "stara", "strada", "straat", "stare", "straße"}},
|
||
{"strwy", {"stairway"}},
|
||
{"s:t", {"sankt"}},
|
||
/// @todo Should not duplicate Street synonyms defined in StreetsSynonymsHolder (avoid useless double queries).
|
||
/// Remove "street" and "avenue" here, but should update GetNameScore.
|
||
{"st",
|
||
{"santo", "sant", "sint", "saint", "stara", "street", "stary", "stora", "sankt", "store", "stare", "stig",
|
||
"stigen", "sancta", "stotelė"}},
|
||
{"št", {"šent"}},
|
||
{"stwg", {"steenweg"}},
|
||
{"subdiv", {"subdivision"}},
|
||
{"subd", {"subdivision"}},
|
||
{"südl", {"südliche", "südlicher", "südliches"}},
|
||
{"svđ", {"sân vận động"}},
|
||
{"sv", {"sveti", "sving", "svetega", "svätého", "svätej", "sveta", "svete", "svingen"}},
|
||
{"svwy", {"serviceway"}},
|
||
{"sw", {"southwest"}},
|
||
{"św", {"świętego", "święci", "świętych", "święty", "święta", "świętej"}},
|
||
{"swy", {"serviceway"}},
|
||
{"szer", {"szeregowego", "szeregowego"}},
|
||
{"tarn", {"tarn"}},
|
||
{"tce", {"terrace"}},
|
||
{"tct", {"tổng công ty"}},
|
||
{"tcty", {"tổng công ty"}},
|
||
{"ten", {"tenente"}},
|
||
{"tenth", {"10th"}},
|
||
{"term", {"terminal"}},
|
||
{"terr", {"terrace"}},
|
||
{"ter", {"terrace"}},
|
||
{"tg", {"tanjong"}},
|
||
{"thcs", {"trung học cơ sở"}},
|
||
{"thfr", {"thoroughfare"}},
|
||
{"third", {"3rd"}},
|
||
{"thirteenth", {"13th"}},
|
||
{"thor", {"thoroughfare"}},
|
||
{"thpt", {"trung học phổ thông"}},
|
||
{"th", {"tiểu học", "tienhaara"}},
|
||
{"tk", {"taman kanak-kanak"}},
|
||
{"tkwy", {"trunkway"}},
|
||
{"tline", {"townline"}},
|
||
{"tl", {"tỉnh lộ"}},
|
||
{"tlwy", {"tollway"}},
|
||
{"tn", {"tarn", "tänav", "turn"}},
|
||
{"tpke", {"turnpike"}},
|
||
{"tpk", {"turnpike"}},
|
||
{"tpl", {"terre plein"}},
|
||
{"tp", {"thành phố"}},
|
||
{"tráns", {"tránsito"}},
|
||
{"transv", {"transversal"}},
|
||
{"tras", {"trasera"}},
|
||
{"tra", {"traverse"}},
|
||
{"trav", {"travessa", "travessera", "travessia"}},
|
||
{"trce", {"trace"}},
|
||
{"tri", {"triangle"}},
|
||
{"trk", {"track"}},
|
||
{"trlr", {"trailer"}},
|
||
{"trl", {"trail"}},
|
||
{"trnabt", {"turnabout"}},
|
||
{"trn", {"turn", "terrain"}},
|
||
{"trrnt", {"torrente"}},
|
||
{"tr", {"track", "torre", "tori"}},
|
||
{"tř", {"třída"}},
|
||
{"trt", {"tertre", "tertres"}},
|
||
{"trval", {"transversal"}},
|
||
{"trva", {"travesía"}},
|
||
{"trv", {"travessa", "travessia"}},
|
||
{"tsse", {"terrasse", "terrasses"}},
|
||
{"t", {"tie", "teich"}},
|
||
{"tttm", {"trung tâm thương mại"}},
|
||
{"tt", {"trung tâm", "thị trấn"}},
|
||
{"tun", {"tunnel"}},
|
||
{"tüpl", {"truppenübungsplatz"}},
|
||
{"tu", {"technische universität"}},
|
||
{"tvl", {"taival"}},
|
||
{"tv", {"travessa"}},
|
||
{"twelfth", {"12th"}},
|
||
{"twentieth", {"20th"}},
|
||
{"twp", {"township"}},
|
||
{"twrs", {"towers"}},
|
||
{"twy", {"tollway"}},
|
||
{"tx", {"thị xã"}},
|
||
{"ukh", {"unfallkrankenhaus"}},
|
||
{"ul", {"ulicą", "ulicy", "ulica", "ulice"}},
|
||
{"uni", {"universität", "university"}},
|
||
{"univ", {"universidade", "university"}},
|
||
{"unt", {"unteres", "unterer", "untere"}},
|
||
{"upas", {"underpass"}},
|
||
{"upr", {"upper"}},
|
||
{"ups", {"underpass"}},
|
||
{"up", {"upper"}},
|
||
{"urb", {"urbanização", "urbanització", "urbanización"}},
|
||
{"u", {"unteres", "unterer", "untere", "utca"}},
|
||
{"vale", {"vale"}},
|
||
{"val", {"vallée", "vallon"}},
|
||
{"varful", {"vârful"}},
|
||
{"varf", {"vârful"}},
|
||
{"va", {"vale"}},
|
||
{"v:a", {"västra"}},
|
||
{"vbt", {"viện bảo tàng"}},
|
||
{"vche", {"vieux chemin"}},
|
||
{"vcto", {"viaducto"}},
|
||
{"vda", {"viuda"}},
|
||
{"vdct", {"viaduct"}},
|
||
{"vd", {"van de", "van den", "van der", "vorderer", "vorderes", "vordere"}},
|
||
{"vecin", {"vecindario"}},
|
||
{"vel", {"veliki", "velike", "veliko", "velika", "velikem"}},
|
||
{"ven", {"venelles", "venelle"}},
|
||
{"verf", {"verfallen"}},
|
||
{"verl", {"verlengde"}},
|
||
{"vf", {"vârful"}},
|
||
{"vge", {"village", "villages"}},
|
||
{"viad", {"viaduct"}},
|
||
{"via", {"viaduct"}},
|
||
{"view", {"view"}},
|
||
{"viii", {"ottavo", "ottava"}},
|
||
{"vii", {"settima", "settimo"}},
|
||
{"villge", {"village"}},
|
||
{"vill", {"village"}},
|
||
{"virful", {"vârful"}},
|
||
{"vîrful", {"vârful"}},
|
||
{"virf", {"vârful"}},
|
||
{"visc", {"visconde"}},
|
||
{"vi", {"sesta", "sesto"}},
|
||
{"vlä", {"väylä"}},
|
||
{"vla", {"villa", "villas"}},
|
||
{"v.le", {"viale"}},
|
||
{"vlls", {"villas"}},
|
||
{"vlt", {"vliet"}},
|
||
{"vl", {"vila"}},
|
||
{"vn", {"vegen", "veien", "veg", "vei"}},
|
||
{"voi", {"voie", "voies"}},
|
||
{"vord", {"vorderer", "vorderes", "vordere"}},
|
||
{"vqg", {"vươn quốc gia"}},
|
||
{"vr", {"vrouwe"}},
|
||
{"vsta", {"vista"}},
|
||
{"vst", {"vista"}},
|
||
{"vs", {"volksschule"}},
|
||
{"vte", {"vieille route"}},
|
||
{"v",
|
||
{"västra", "vei", "von", "velike", "veliko", "väg", "via", "quinta", "velikem", "veliki", "vegen", "veien", "veg",
|
||
"vägen", "quinto", "velika", "van"}},
|
||
{"vvdas", {"viviendas"}},
|
||
{"vv", {"vivenda"}},
|
||
{"vw", {"view"}},
|
||
{"vy", {"valley"}},
|
||
{"wadm", {"wiceadmirała", "wiceadmirał"}},
|
||
{"walk", {"walk"}},
|
||
{"way", {"way"}},
|
||
{"westl", {"westliche", "westliches", "westlicher"}},
|
||
{"wg", {"weg"}},
|
||
{"whrf", {"wharf"}},
|
||
{"wh", {"wirtshaus"}},
|
||
{"wk", {"walk"}},
|
||
{"wkwy", {"walkway"}},
|
||
{"wky", {"walkway"}},
|
||
{"wlkp", {"wielkopolski", "wielkopolskie", "wielkopolska"}},
|
||
{"wlk", {"wielki", "wielkie", "walk", "wielka"}},
|
||
{"wm", {"william"}},
|
||
{"woj", {"województwie", "województwo"}},
|
||
{"wr", {"wiener"}},
|
||
{"wsf", {"wasserfall"}},
|
||
{"wssf", {"wasserfall"}},
|
||
{"ws", {"wiese"}},
|
||
{"wtr", {"waters"}},
|
||
{"wu", {"wirtschaftsuniversität"}},
|
||
{"w", {"wald", "west", "weg"}},
|
||
{"wyb", {"wybrzeża", "wybrzeże", "wybrzeżem"}},
|
||
{"wynd", {"wynd"}},
|
||
{"wyn", {"wynd"}},
|
||
{"wy", {"way"}},
|
||
{"wz", {"westzijde"}},
|
||
{"x", {"decima", "decimo"}},
|
||
{"xing", {"crossing"}},
|
||
{"xway", {"expressway"}},
|
||
{"xxiii", {"ventitreesimo"}},
|
||
{"xxiv", {"ventiquattro"}},
|
||
{"xx", {"venti"}},
|
||
{"xxv", {"venticinque"}},
|
||
{"xxx", {"trenta"}},
|
||
{"yd", {"yard"}},
|
||
{"zac", {"zone d'aménagement concerté"}},
|
||
{"zad", {"zone d'aménagement différé"}},
|
||
{"za", {"zone artisanale", "zone d'activité"}},
|
||
{"zd", {"zdravstveni dom"}},
|
||
{"zg", {"zgornja", "zgornji", "zgornje"}},
|
||
{"zi", {"zone industrielle"}},
|
||
{"zn", {"zona"}},
|
||
{"zr", {"zuster"}},
|
||
{"zup", {"zone à urbaniser en priorité"}},
|
||
{"z", {"zum"}},
|
||
{"zz", {"zuidzijde"}},
|
||
{"αγ", {"αγίας", "αγίων", "αγίου"}},
|
||
{"αει", {"πανεπιστήμιο"}},
|
||
{"αλ", {"αλέξανδρου"}},
|
||
{"ατ", {"αστυνομικό τμήμα"}},
|
||
{"ατει", {"ανώτατο τεχνολογικό εκπαιδευτικό ίδρυμα"}},
|
||
{"αφοί", {"αδελφοί"}},
|
||
{"αφών", {"αδελφών"}},
|
||
{"βασ", {"βασιλέως", "βασιλίσσης"}},
|
||
{"β", {"βασιλέως", "βασιλίσσης"}},
|
||
{"γρ", {"γρηγορίου"}},
|
||
{"δ", {"δήμος"}},
|
||
{"δς", {"δημοτικό σχολείο"}},
|
||
{"εθν", {"εθνάρχου", "εθνική", "εθνικής"}},
|
||
{"ελ", {"ελευθέριος", "ελευθερίου"}},
|
||
{"ελτα", {"ταχυδρομείο", "ελληνικά ταχυδρομεία"}},
|
||
{"κτ", {"κτίριο"}},
|
||
{"λεωφ", {"λεωφόρος"}},
|
||
{"λ", {"λίμνη", "λεωφόρος"}},
|
||
{"ν", {"νέο", "νέος", "νέα", "νέες", "νησί", "νέοι", "νομός"}},
|
||
{"όρ", {"όρος"}},
|
||
{"παν", {"πανεπιστήμιο"}},
|
||
{"πλ", {"πλατεία"}},
|
||
{"ποτ", {"ποταμός"}},
|
||
{"π", {"παλαιός", "παλαιό", "παλαιά", "παλαιοί", "παλαιές", "ποταμός"}},
|
||
{"στρ", {"στρατηγού"}},
|
||
{"τει", {"τεχνολογικό εκπαιδευτικό ίδρυμα"}},
|
||
{"ал", {"аллея", "алея"}},
|
||
{"б", {"большая", "большой"}},
|
||
{"бл", {"блок"}},
|
||
{"бол", {"большая", "большой"}},
|
||
{"бул", {"булевард", "бульвар"}},
|
||
{"вул", {"вулиця"}},
|
||
{"вх", {"вход"}},
|
||
{"ген", {"генерал"}},
|
||
{"гр", {"град"}},
|
||
{"дор", {"дорога"}},
|
||
{"доц", {"доцент"}},
|
||
{"зав", {"завулак"}},
|
||
{"кап", {"капитан"}},
|
||
{"кв", {"квартал"}},
|
||
{"мал", {"малый", "малая"}},
|
||
{"мит", {"митрополит"}},
|
||
{"м", {"малый", "малая"}},
|
||
{"наб", {"набережная", "набережна", "набярэжная"}},
|
||
{"нов", {"новый", "новая"}},
|
||
{"обл", {"область"}},
|
||
{"пер", {"переулок"}},
|
||
{"пл", {"площа", "площадь", "площад"}},
|
||
{"пров", {"провулок"}},
|
||
{"просп", {"проспект"}},
|
||
{"проф", {"професор"}},
|
||
{"пр", {"проезд", "проспект", "праспект", "провулок", "проїзд", "праезд"}},
|
||
{"св", {"святые", "святая", "святого", "святых", "свети", "свято", "святой"}},
|
||
{"с", {"село"}},
|
||
{"стар", {"старая", "старый"}},
|
||
{"туп", {"тупик", "тупік"}},
|
||
{"ул", {"улица"}},
|
||
{"ш", {"шаша", "шосе", "шоссе"}},
|
||
{"ইউপি", {"ইউনিয়ন পরিষদ"}},
|
||
{"একনেক", {"জাতীয় অর্থনৈতিক পরিষদের নির্বাহী কমিটি"}},
|
||
{"টেশিস", {"টেলিফোন শিল্প সংস্থা"}},
|
||
{"ঢাবি", {"ঢাকা বিশ্ববিদ্যালয়"}},
|
||
{"পবিস", {"পল্লী বিদ্যুৎ সমিতি"}},
|
||
{"পাউবো", {"পানি উন্নয়ন বোর্ড"}},
|
||
{"বাগ", {"বাগান"}},
|
||
{"বিডি", {"বাংলাদেশ"}},
|
||
{"রাজউক", {"রাজধানী উন্নয়ন কর্তৃপক্ষ"}},
|
||
{"সওজ", {"সড়ক ও জনপথ অধিদপ্তর"}},
|
||
{"স", {"সড়ক"}},
|
||
{"সে", {"সেতু"}},
|
||
{"一", {"一般都道", "一般県道", "一般府道", "一般道道"}},
|
||
{"一社", {"一般社団法人"}},
|
||
{"一財", {"一般財団法人"}},
|
||
{"中", {"中学校"}},
|
||
{"主", {"主要地方道"}},
|
||
{"医", {"医療法人"}},
|
||
{"合", {"合同会社"}},
|
||
{"名", {"合名会社"}},
|
||
{"大", {"国立大学法人", "公立大学法人","大学"}},
|
||
{"学", {"学校法人"}},
|
||
{"小", {"小学校"}},
|
||
{"有", {"有限会社"}},
|
||
{"株", {"株式会社"}},
|
||
{"独", {"独立行政法人"}},
|
||
{"財", {"財団法人"}},
|
||
{"資", {"合資会社"}},
|
||
{"銀", {"銀行"}},
|
||
{"高校", {"高等学校"}},
|
||
{"高", {"高等学校"}},
|
||
{"ش", {"شارع"}},
|
||
{"ط", {"طريق"}},
|
||
{"م", {"ميدان", "مجاوره", "محطه", "موقف"}},
|
||
{"د", {"دكتور"}},
|
||
{"ج", {"جامعه"}},
|
||
{"ح", {"حى"}},
|
||
{"ع", {"عماره"}},
|
||
{"احد", {"1"}},
|
||
{"واحد", {"1"}},
|
||
{"حادى", {"1"}},
|
||
{"اثنين", {"2"}},
|
||
{"اثنان", {"2"}},
|
||
{"ثلاث", {"3"}},
|
||
{"اربع", {"4"}},
|
||
{"خمس", {"5"}},
|
||
{"ست", {"6"}},
|
||
{"سبع", {"7"}},
|
||
{"ثمان", {"8"}},
|
||
{"ثمانيه", {"8"}},
|
||
{"تسع", {"9"}},
|
||
{"عشر", {"10"}},
|
||
{"عشرين", {"20"}},
|
||
{"عشرون", {"20"}},
|
||
{"الحد", {"الاحد"}},
|
||
{"الاحد", {"الحد"}},
|
||
{"التلات", {"الثلاثاء"}},
|
||
{"الثلاثاء", {"التلات"}},
|
||
};
|
||
} // namespace
|
||
|
||
// QueryParams::Token ------------------------------------------------------------------------------
|
||
void QueryParams::Token::AddSynonym(string const & s)
|
||
{
|
||
AddSynonym(strings::MakeUniString(s));
|
||
}
|
||
|
||
void QueryParams::Token::AddSynonym(String const & s)
|
||
{
|
||
if (!IsStopWord(s))
|
||
m_synonyms.push_back(s);
|
||
}
|
||
|
||
string DebugPrint(QueryParams::Token const & token)
|
||
{
|
||
ostringstream os;
|
||
os << "Token [ m_original=" << DebugPrint(token.GetOriginal()) << ", m_synonyms=" << DebugPrint(token.m_synonyms)
|
||
<< " ]";
|
||
return os.str();
|
||
}
|
||
|
||
// QueryParams -------------------------------------------------------------------------------------
|
||
void QueryParams::ClearStreetIndices()
|
||
{
|
||
class AdditionalCommonTokens
|
||
{
|
||
set<String> m_strings;
|
||
|
||
public:
|
||
AdditionalCommonTokens()
|
||
{
|
||
char const * arr[] = {
|
||
"the", // English
|
||
"der", "zum", "und", "auf", // German
|
||
"del", "les", // Spanish
|
||
"в", "на" // Cyrillic
|
||
};
|
||
for (char const * s : arr)
|
||
m_strings.insert(NormalizeAndSimplifyString(s));
|
||
}
|
||
bool Has(String const & s) const { return m_strings.count(s) > 0; }
|
||
};
|
||
static AdditionalCommonTokens const s_addCommonTokens;
|
||
|
||
size_t const count = GetNumTokens();
|
||
m_isCommonToken.resize(count, false);
|
||
|
||
for (size_t i = 0; i < count; ++i)
|
||
{
|
||
auto const & token = GetToken(i).GetOriginal();
|
||
if (IsStreetSynonym(token))
|
||
{
|
||
m_typeIndices[i].clear();
|
||
m_isCommonToken[i] = true;
|
||
}
|
||
else if (s_addCommonTokens.Has(token))
|
||
m_isCommonToken[i] = true;
|
||
}
|
||
}
|
||
|
||
void QueryParams::Clear()
|
||
{
|
||
m_tokens.clear();
|
||
m_prefixToken.Clear();
|
||
m_hasPrefix = false;
|
||
m_isCommonToken.clear();
|
||
m_typeIndices.clear();
|
||
m_langs.Clear();
|
||
}
|
||
|
||
bool QueryParams::IsCategorySynonym(size_t i) const
|
||
{
|
||
return !GetTypeIndices(i).empty();
|
||
}
|
||
|
||
QueryParams::TypeIndices & QueryParams::GetTypeIndices(size_t i)
|
||
{
|
||
ASSERT_LESS(i, GetNumTokens(), ());
|
||
return m_typeIndices[i];
|
||
}
|
||
|
||
QueryParams::TypeIndices const & QueryParams::GetTypeIndices(size_t i) const
|
||
{
|
||
ASSERT_LESS(i, GetNumTokens(), ());
|
||
return m_typeIndices[i];
|
||
}
|
||
|
||
bool QueryParams::IsPrefixToken(size_t i) const
|
||
{
|
||
ASSERT_LESS(i, GetNumTokens(), ());
|
||
return i == m_tokens.size();
|
||
}
|
||
|
||
QueryParams::Token const & QueryParams::GetToken(size_t i) const
|
||
{
|
||
ASSERT_LESS(i, GetNumTokens(), ());
|
||
return i < m_tokens.size() ? m_tokens[i] : m_prefixToken;
|
||
}
|
||
|
||
QueryParams::Token & QueryParams::GetToken(size_t i)
|
||
{
|
||
ASSERT_LESS(i, GetNumTokens(), ());
|
||
return i < m_tokens.size() ? m_tokens[i] : m_prefixToken;
|
||
}
|
||
|
||
bool QueryParams::IsCommonToken(size_t i) const
|
||
{
|
||
return i < m_isCommonToken.size() && m_isCommonToken[i];
|
||
}
|
||
|
||
bool QueryParams::IsNumberTokens(TokenRange const & range) const
|
||
{
|
||
ASSERT(range.IsValid(), (range));
|
||
ASSERT_LESS_OR_EQUAL(range.End(), GetNumTokens(), ());
|
||
|
||
for (size_t i : range)
|
||
if (!GetToken(i).AnyOfOriginalOrSynonyms([](String const & s) { return strings::IsASCIINumeric(s); }))
|
||
return false;
|
||
|
||
return true;
|
||
}
|
||
|
||
void QueryParams::RemoveToken(size_t i)
|
||
{
|
||
ASSERT_LESS(i, GetNumTokens(), ());
|
||
if (i == m_tokens.size())
|
||
{
|
||
m_prefixToken.Clear();
|
||
m_hasPrefix = false;
|
||
}
|
||
else
|
||
{
|
||
m_tokens.erase(m_tokens.begin() + i);
|
||
}
|
||
m_typeIndices.erase(m_typeIndices.begin() + i);
|
||
}
|
||
|
||
void QueryParams::AddSynonyms()
|
||
{
|
||
for (auto & token : m_tokens)
|
||
{
|
||
string const ss = ToUtf8(MakeLowerCase(token.GetOriginal()));
|
||
auto const it = kSynonyms.find(ss);
|
||
if (it != kSynonyms.end())
|
||
for (auto const & synonym : it->second)
|
||
token.AddSynonym(synonym);
|
||
}
|
||
if (m_hasPrefix)
|
||
{
|
||
string const ss = ToUtf8(MakeLowerCase(m_prefixToken.GetOriginal()));
|
||
auto const it = kSynonyms.find(ss);
|
||
if (it != kSynonyms.end())
|
||
for (auto const & synonym : it->second)
|
||
m_prefixToken.AddSynonym(synonym);
|
||
}
|
||
}
|
||
|
||
string DebugPrint(QueryParams const & params)
|
||
{
|
||
ostringstream os;
|
||
os << boolalpha << "QueryParams "
|
||
<< "{ m_tokens: " << ::DebugPrint(params.m_tokens) << ", m_prefixToken: " << DebugPrint(params.m_prefixToken)
|
||
<< ", m_typeIndices: " << ::DebugPrint(params.m_typeIndices) << ", m_langs: " << DebugPrint(params.m_langs)
|
||
<< ", m_isCommonToken: " << ::DebugPrint(params.m_isCommonToken) << " }";
|
||
return os.str();
|
||
}
|
||
} // namespace search
|