2014-06-25 69 views
3

我在很多映射中使用多字段。在彈性搜索的文檔中,有一個跡象表明應該用「fields」參數替換多個字段。見http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/_multi_fields.html#_multi_fields彈性搜索中多場和複製之間的區別?

這工作正常。然而,爲了訪問多場作爲一個單一的字段的文檔建議指定copy_to參數代替路徑參數(見http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/mapping-core-types.html#_accessing_fields

有人可以提供這樣的映射定義的一個例子(因此使用「田」參數結合「copy_to」)。

我的印象是,如果你使用fields參數,你仍然需要指定路徑參數。如果使用copy_to,則不再需要使用多字段方法;這些字段只是成爲單獨的字段,並且一個字段的數據在索引時間被複制到另一個字段。

希望有人能幫助。

THX 馬克

+0

我一直在努力去理解多字段的概念; 「copy_to」爲我進一步混淆了事情。我希望我們得到一個體面的回答你的問題。 –

回答

0

我認爲copy_to選項可以爲多場特徵的清潔器的變體被視爲(即,fields選項)。當您想要將字段的值「複製」到一個或多個其他字段(以應用不同的映射規則)時,這兩種方法都很容易使用。但是,如果您需要將多個字段中的值「複製」到相同字段(即,當您需要custom _all field),則必須將path選項添加到映射中(如果使用的是多字段)。另一方面,使用copy_to選項,您可以簡單地將多個源字段指向相同的目標字段。

0

看到這個:https://www.elastic.co/guide/en/elasticsearch/reference/1.6/_multi_fields.html

copy_to將允許你合併不同的領域,如FIRST_NAME,雖然多場,當你要定義幾種方法來索引你的領域中使用的姓氏爲FULL_NAME

。例如

// Document mapping 
{ 
    "properties": { 
    "name": { 
     "fields": { 
     "name_metaphone": { 
      "type": "string", 
      "analyzer": "mf_analyzer" 
     }, 
     "name_exact": { 
      "index": "not_analyzed", 
      "type": "string" 
     } 
     }, 
     "type": "multi_field" 
    } 
    } 
} 
相關問題