2016-10-03 25 views
0

我有一個名爲placess類型如下:加入分析儀到現場

"name" : { 
     "type" : "string" 
     }, 

我已經創建了一個分析如下:

curl -XPUT 'localhost:9200/ashojash/_settings' -d '{ 
"settings": { 
    "analysis": { 
     "filter": { 
      "autocomplete_filter": { 
       "type":  "edge_ngram", 
       "min_gram": 1, 
       "max_gram": 20 
      } 
     }, 
     "analyzer": { 
      "autocomplete": { 
       "type":  "custom", 
       "tokenizer": "standard", 
       "filter": [ 
        "lowercase", 
        "autocomplete_filter" 
       ] 
      } 
     } 
    } 
} 

} ' 我的問題是,我怎麼能將此分析器添加到名爲name的現有字段?

我試圖

curl -XPUT 'http://localhost:9200/ashojash/_mapping/venues' -d ' 
{ 
"venues" : { 
    "properties" : { 
     "name" : { 
      type:"string", 
      "analyzer": "persian" 
      } 
    } 
} 
}' 

但是這給了我衝突區[name]已經存在。
如何將此分析儀添加到名爲name的現有字段?

回答

0

你需要在同一時間,當你創建索引(創建後不能更改的分析儀中的字段)來做到這一點:

curl -XPUT 'localhost:9200/ashojash' -d '{ 
    "settings": { 
    "analysis": { 
     "filter": { 
     "autocomplete_filter": { 
      "type": "edge_ngram", 
      "min_gram": 1, 
      "max_gram": 20 
     } 
     }, 
     "analyzer": { 
     "autocomplete": { 
      "type": "custom", 
      "tokenizer": "standard", 
      "filter": [ 
      "lowercase", 
      "autocomplete_filter" 
      ] 
     } 
     } 
    } 
    }, 
    "mappings": { 
    "venues": { 
     "properties": { 
     "name": { 
      "type": "string", 
      "analyzer": "autocomplete" 
     } 
     } 
    } 
    } 
}' 
+0

對不起新elasticSearch,我可以指定一個分析查詢時數據? – Mehrdad

+0

您可以指定分析器索引時間和搜索時間。這取決於你想達到什麼。你需要更詳細地解釋你的用例。 – Val

+0

其實我有mysql數據庫,它與彈性搜索(我想執行搜索的那些字段)同步。 在''場地''的名稱字段中,我想要一個帶有''edge_ngram''的建議器(我還應用更多分析器,如波斯等) 我想將這些分析器應用於specefic字段。 這就是我能想到的,這可能很重要。 如果需要更多信息,請告訴我。謝謝 – Mehrdad