嵌套字段类型属性不是嵌套类型弹性搜索

时间:2021-02-19 13:21:47

标签: javascript node.js date elasticsearch

我正在尝试设置一个嵌套对象,以便我可以使用点表示法从我的 Elastic Search 数据库中查询数据,但是,我不相信我的映射属性在插入时首先被正确设置记录,我正在尝试验证我是否真的设置正确:

存储数据

const data = {
  mappings: {
    properties: {
      data: {
        type: 'nested'
      },
      period_from: {
        type: 'date',
        format: 'yyyy-MM-dd HH:mm:ss',
        fielddata: true
      },
      period_to: {
        type: 'date',
        format: 'yyyy-MM-dd HH:mm:ss',
        fielddata: true
      },
      created_at: {
        type: 'date',
        format: 'yyyy-MM-dd HH:mm:ss',
        fielddata: true
      },
      updated_at: {
        type: 'date',
        format: 'yyyy-MM-dd HH:mm:ss',
        fielddata: true
      }
    }
  },
  data: {
    dataset: 'events',
    event_category: 'test1',
    event_action: 'test2',
    event_count: '300,
    period_from: moment().format('YYYY-MM-DD HH:MM:SS'),
    period_to: moment().format('YYYY-MM-DD HH:MM:SS'),
    created_at: moment().format('YYYY-MM-DD HH:MM:SS'),
    updated_at: moment().format('YYYY-MM-DD HH:MM:SS')
  },
  period_from: moment().format('YYYY-MM-DD HH:MM:SS'),
  period_to: moment(.format('YYYY-MM-DD HH:MM:SS'),
  created_at: moment().format('YYYY-MM-DD HH:MM:SS'),
  updated_at: moment().format('YYYY-MM-DD HH:MM:SS')
}

client.index({
  index: 'my_table',
  body: data
})

检索数据

client.search({
  index: 'my_table',
  body: {
    query: {
      nested: {
        path: 'data',
        query: {
          bool: {
            must: [{
              match: {
                'data.event_category': 'test1'
              }
            }, {
              match: {
                'data.event_action': 'test2'
              }
            }, {
              range: {
                period_from: {
                  gte: moment().format('YYYY-MM-DD HH:MM:SS')
                }
              }
            }, {
              range: {
                period_to: {
                  lte: moment().format('YYYY-MM-DD HH:MM:SS')
                }
              }
            }]
          }
        }
      }
    }
  }
}, {
  ignore: [404],
  maxRetries: 3
})

我不知道为什么,我觉得我的映射可能设置不正确。我在 aboe 上遇到的根本原因错误是:

<块引用>

未能创建查询:路径[数据]下的[嵌套]嵌套对象不是嵌套类型

0 个答案:

没有答案