【问题标题】:Best way to define dynamic mapping index fields in elasticsearch在 elasticsearch 中定义动态映射索引字段的最佳方法
【发布时间】:2022-01-11 03:19:04
【问题描述】:

我有一些包含动态键的对象。如何定义映射以优化搜索查询。

例如 我有以下嵌套和对象类型字段

"similarities": [
  {
    "key1": "value1",
    "key2": "value2"
  },
  {
    "key3": "value1",
    "key4": "value2"
  }
]
"entity": {
  "version": "SO",
  "Non-Commerical": "GGP"
}

对于结果,我需要 entity 包含 GGP 的所有文档,无论密钥是什么。 您能帮忙定义映射和搜索查询吗?

【问题讨论】:

    标签: python elasticsearch


    【解决方案1】:

    您可以将dynamic mapping 用于entity.*copy_to 到另一个字段,比如entity_values。然后你只需要一个 match 查询 entity_values 现在包含所有值。

    【讨论】:

    • 感谢您的回答,但实体字典中的键值是动态的,可以有多个 ket 值,我没有每个键名。 copy_to 在这种情况下有效吗?
    • 是的,如果您定义一个动态映射,它将自动应用于entity 内的所有键,并将所有值“复制”到累加器字段中。
    猜你喜欢
    • 2012-02-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多