2014-06-25 26 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" 
    } 
    } 
} 
相关问题