我目前正在尝试了解字段(https://www.elastic.co/guide/zh/elasticsearch/reference/current/multi-fields.html)和属性(https://www.elastic.co /guide/zh-CN/elasticsearch/reference/current/properties.html)。
它们都以某种方式定义为类型/映射属性的“子字段/子属性”,都可以具有单独的类型和分析器(据我所知),都可以通过点符号(mappingProperty.subField
或mappingProperty.property
)访问。
这些文档随机使用术语“字段”和“属性”,我有这样的感觉,例如:
类型映射,对象字段和嵌套字段包含称为属性的子字段。
属性和(子)字段之间有什么区别?如何确定我是否有财产或田地?
换句话说,如何决定我是否使用
{ "mappings": { "_doc": { "properties": { "myProperty": { "properties": { } } } } } }
要么
{ "mappings": { "_doc": { "properties": { "myProperty": { "fields": { } } } } } }
Pierre Malle.. 5
子字段是从父属性源中索引的。而子属性需要在文档源中具有“真实”值。
如果源中包含真实对象,则需要创建属性。每个属性将对应一个与您的来源不同的值。
如果只想索引相同的值但使用不同的分析器,则使用子字段。
为不同的目的以不同的方式对同一字段建立索引通常很有用。这是多字段的目的。例如,可以将字符串字段映射为用于全文搜索的文本字段,并映射为用于排序或聚合的关键字字段:
(对不起,我很难解释= |)
子字段是从父属性源中索引的。而子属性需要在文档源中具有“真实”值。
如果源中包含真实对象,则需要创建属性。每个属性将对应一个与您的来源不同的值。
如果只想索引相同的值但使用不同的分析器,则使用子字段。
为不同的目的以不同的方式对同一字段建立索引通常很有用。这是多字段的目的。例如,可以将字符串字段映射为用于全文搜索的文本字段,并映射为用于排序或聚合的关键字字段:
(对不起,我很难解释= |)