各种语言的大陆,国家,州和城市

时间:2017-03-19 19:18:16

标签: elasticsearch

我是Elasticsearch的新手,我确实需要开发一个功能,该功能具有搜索许多文档的唯一输入表单。我为每个文档创建一种语言,例如:

continents-en,continents-pt-br,countries-en,countries-pt-br,cities-en,cities-pt-br

每个文档都有特定属性(id,code,name,lat,long ...),例如:

洲烯 1,SA,北美

国家烯 1,美国,美国 2,BR,巴西

国家-PT-BR 1,美国,Estados Unidos 2,BR,Brasil

城市烯 1,纽约,拉特,朗...

城市-PT-BR 1,Nova Iorque,Lat,Long ......

第一个问题:这是最好的方法吗?

所以,我创建了这个弹性搜索搜索:

  

curl -XGET   'http://localhost:9000/countries- ,各大洲 - ,城市 - * / _搜索'-d'   {“尺寸”:20,          “查询”:{

 "function_score": {
   "query": {
     "wildcard": { "name": "#{query}*" }
   },
   "functions": [
     {
       "filter": { "term": { "_type": "continent" }},
       "weight": 10000
     },
     {
       "filter": { "term": { "_type": "country" }},
       "weight": 8000
     },
     {
       "filter": { "term": { "_type": "city" }},
       "weight": 6000
     }
   ]
 }    } }'

问题是当我在输入表单上输入“bra”时,我会收到结果:巴西巴西。主要语言是葡萄牙语,所以如果我有葡萄牙语翻译,我会忽略英语翻译,因为结果具有相同的国家ID。

我该怎么做?

0 个答案:

没有答案