firebase - ElasticSearch 排序给出 fielddata 错误

标签 firebase elasticsearch firebase-realtime-database elasticsearch-5

我正在使用 Firebase Flashlight 查询我的 Firebase 数据库,但无法对结果进行排序。

我正在使用此查询:

this.elasticConfig = {
  type: 'guest',
  body: {
    from: 0,
    size: 20,
    query: {
      bool: {
        must: [
          {
            match: {
              isApproved: false
            }
          },
          {
            match: {
              isCheckedIn: false
            }
          },
          {
            match: {
              eventId: event.id
            }
          }
        ]
      }
    },
    sort: [
      {
        name: {
          order: 'asc'
        }
      }
    ]
  }
};

但我从 elasticsearch 收到此错误:

Fielddata is disabled on text fields by default. Set fielddata=true on [name] in order to load fielddata in memory by uninverting the inverted index. Note that this can however use significant memory.

我觉得很奇怪,一个简单的字母排序操作需要您使用“大量内存”。

我在查询中是否遗漏了某些内容?或者我还可以做些什么来让它发挥作用?

最佳答案

如果这是 ES 5 并且该字段已由 Elasticsearch 自动映射,请尝试对 name.keyword 进行排序。否则,您需要将 name 字段设置为 keyword 类型,或者向其中添加 keyword 子字段以搜索 name.keyword ,当然,子字段的类型为keyword

关于firebase - ElasticSearch 排序给出 fielddata 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44112841/

相关文章:

angular - 在 Firebase 中保存产品 - 类别未定义

firebase - 注销时取消订阅 Firestore 监听器

elasticsearch - 如何在Elasticsearch中查询后区分值

android - 重复的 jar 条目 - android

java - 安卓 : Firebase Realtime database

firebase - 由于不存在的 SDK 未启用,因此出现 Firebase 模拟器错误

ios - tableView Firebase Swift 中的异步数据

elasticsearch - 根据发展目标进行麋鹿指标设计

elasticsearch - 同时搜索单个字符串和多单词字符串的术语

java - Android - Firebase - 将用户发送到聊天室