Elasticsearch 聚合将结果转换为小写

2023-12-11

我玩了一下 ElasticSearch,在进行聚合时发现了一个问题。

我有两个端点,/A and /B。在第一个中,我有第二个的父母。因此,B 中的一个或多个对象必须属于 A 中的一个对象。因此,B 中的对象有一个属性“parentId”,其父级索引由 ElasticSearch 生成。

我想通过 B 的子属性过滤 A 中的父项。为此,我首先按属性过滤 B 中的子项,并获取其唯一的父 ID,稍后我将使用该 ID 来获取父项。

我发送这个请求:

POST http://localhost:9200/test/B/_search
{
    "query": {
        "query_string": {
            "default_field": "name",
            "query": "derp2*"
        }
    },
    "aggregations": {
        "ids": {
            "terms": {
                "field": "parentId"
            }
        }
    }
}

并得到这样的回应:

{
  "took": 91,
  "timed_out": false,
  "_shards": {
    "total": 5,
    "successful": 5,
    "failed": 0
  },
  "hits": {
    "total": 3,
    "max_score": 1,
    "hits": [
      {
        "_index": "test",
        "_type": "child",
        "_id": "AU_fjH5u40Hx1Kh6rfQG",
        "_score": 1,
        "_source": {
          "parentId": "AU_ffvwM40Hx1Kh6rfQA",
          "name": "derp2child2"
        }
      },
      {
        "_index": "test",
        "_type": "child",
        "_id": "AU_fjD_U40Hx1Kh6rfQF",
        "_score": 1,
        "_source": {
          "parentId": "AU_ffvwM40Hx1Kh6rfQA",
          "name": "derp2child1"
        }
      },
      {
        "_index": "test",
        "_type": "child",
        "_id": "AU_fjKqf40Hx1Kh6rfQH",
        "_score": 1,
        "_source": {
          "parentId": "AU_ffvwM40Hx1Kh6rfQA",
          "name": "derp2child3"
        }
      }
    ]
  },
  "aggregations": {
    "ids": {
      "doc_count_error_upper_bound": 0,
      "sum_other_doc_count": 0,
      "buckets": [
        {
          "key": "au_ffvwm40hx1kh6rfqa",
          "doc_count": 3
        }
      ]
    }
  }
}

由于某种原因,过滤后的键以小写形式返回,因此无法向 ElasticSearch 请求父级

GET http://localhost:9200/test/A/au_ffvwm40hx1kh6rfqa

Response:
{
  "_index": "test",
  "_type": "A",
  "_id": "au_ffvwm40hx1kh6rfqa",
  "found": false
}

关于为什么会发生这种情况有什么想法吗?


命中和聚合结果之间的区别在于聚合对创建的术语起作用。他们还将返回条款。命中返回原始来源。

这些术语是如何创建的?基于所选的分析器,在您的情况下是默认分析器,即标准分析器。该分析器所做的事情之一是小写术语的所有字符。正如 Andrei 所提到的,您应该将字段parentId 配置为not_analyzed。

PUT test
{
  "mappings": {
    "B": {
      "properties": {
        "parentId": {
          "type": "string",
          "index": "not_analyzed"
        }
      }
    }
  }   
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Elasticsearch 聚合将结果转换为小写 的相关文章

  • 向 ElasticSearch 术语聚合添加其他字段

    索引文档如下 id 1 title Blah platform id 84 url http facebook com title Facebook 我想要的是按平台计数和输出统计数据 为了计数 我可以使用术语聚合platform id作为
  • 将 Elasticsearch 结果导出到 CSV 文件

    我正在尝试将使用以下查询找到的结果导出到桌面上的 CSV 中 这是我第一次使用 Elasticsearch 和 cURL 所以我对如何做到这一点感到困惑 from elasticsearch import Elasticsearch es
  • 了解elasticsearch如何在内部存储日期

    我想了解 ES 如何在其索引内部存储日期值 它会转换为 UTC 吗 我有一个日期类型的字段 t 这是映射 t type date 现在 当我向 ES 插入 添加文档时 它如何存储在索引中 t 1427700477165 从 Date now
  • 随着索引和文档数量恒定,elasticsearch 批量索引会随着时间的推移而变慢

    我遇到了使用 NET NEST 客户端和 ElasticSearch 进行批量索引的性能随着时间的推移 索引数量和文档数量恒定而降低的情况 我们正在奔跑ElasticSearch Version 0 19 11 JVM 23 5 b02在具
  • Elasticsearch:如何查询连接数?

    如何询问我的 Elasticsearch 服务器现在有多少个连接 这与插座数量相同吗 我也不知道如何获得这些数字 这与客户端的数量不同 对吧 因为每个客户端可能打开多个连接 找不到任何相关信息 但我确实发现您可以在 Elasticsearc
  • 局部敏感哈希 - Elasticsearch

    有没有允许在 Elasticsearch 上使用 LSH 的插件 如果是的话 您能否指出该位置并告诉我如何使用它 谢谢 编辑 我发现ES使用了MinHash插件 我怎样才能用这个来比较文件呢 查找重复项的最佳设置是什么 有一个Elastic
  • 全文搜索 DynamoDB

    以下情况 我正在为我的客户将元素存储在 DyanmoDb 中 HashKey 是元素 ID Range Key 是客户 ID 除了这些字段之外 我还存储一个字符串数组 gt 标签 例如 Pets House 和多行文本 我想在我的应用程序中
  • 如何在 Python 中小写字符串?

    有没有办法将字符串转换为小写 Kilometers kilometers See How to change a string into uppercase https stackoverflow com questions 9257094
  • 在 Elastic 搜索中加载示例数据集时出错

    您好 我正在尝试加载示例数据集参考弹性搜索文档 https www elastic co guide en elasticsearch reference current exploring your data html但是当我尝试运行指示
  • 如何编写Elasticsearch多个必须脚本查询?

    我想使用查询来比较多个字段 我有字段 1 到 4 我想搜索字段 1 大于字段 2 的数据 并且下面的查询工作正常 size 0 source field1 field2 field3 field4 sort query bool filte
  • 将 ElasticSearch SearchResponse 对象转换为 JsonObject

    我想将elasticsearch搜索结果转换为Json对象 我还没有找到任何直接转换的正确方法 SearchResponse response client prepareSearch index setExplain true execu
  • 弹性搜索文档计数

    我正在运行 2 2 版本的 Elastic 搜索 我已经创建了索引并加载了示例文档 我发现其中有些问题 当我给予 GET index type count 我得到了正确的答案 count 9998 shards total 5 succes
  • 无法使用docker在Apple Mac芯片M1上启动elasticsearch

    在发布这个问题之前 我浏览了许多链接 例如 Kibana 无法在 Mac M1 上使用 docker 连接到 ElasticSearch https stackoverflow com questions 73160632 kibana c
  • 在 Elasticsearch 中删除文件后回收磁盘空间

    当我从 Elasticsearch 中删除文档时 为什么我的 总大小 保持不变 尽管由于没有以前存储的数据而明显小得多 我读过有关索引优化的内容 但我不确定这是什么或如何做到这一点 Thanks 我确信 SO 和 Google 上都有大量与
  • Elasticsearch - 使用“标签”索引来发现给定字符串中的所有标签

    我有一个 elasticsearch v2 x 集群 其 标签 索引包含大约 5000 个标签 tagName tagID 给定一个字符串 是否可以查询标签索引以获取在该字符串中找到的所有标签 我不仅想要精确匹配 而且还希望能够控制模糊匹配
  • Elasticsearch:根据类型对不同字段进行排序

    我的索引中有两种类型 Event and City 我正在尝试按日期将它们全部排序 但是 每种类型的日期字段名称都不同 为了Event该值是在updated at领域和City日期是在update at其嵌套对象之一中的字段city eve
  • Elastic Search 索引经常被删除[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我正在 google cloud 上对个人项目运行弹性搜索 并将其用作我的应用程序的搜索索引 从最近三天开始 索引就被神秘地删除了 我不知
  • ElasticSearch - 尝试在 Windows 上启动服务时出错

    昨天 我在 Windows Server 2012 R2 上完成了 ElasticSearch 的安装 并且能够正常启动 ElasticSearch 服务 今天 我安装了 Kibana 和 X Pack 但在尝试启动 ElasticSear
  • 适用于elasticsearch 7.0.1 和 kibana 7.0.1 的 docker-compose.yml

    我在 Windows 10 上将 Docker Desktop 与 Linux 容器结合使用 并希望通过 docker compose 文件启动最新版本的 elasticsearch 和 kibana 容器 使用 6 2 4 等旧版本时一切
  • Elasticsearch:预期的字段名称,但得到了 START_OBJECT

    我一直在尝试运行以下查询 但每次运行时都会收到以下错误 nested ElasticsearchParseException Expected field name but got START OBJECT field value fact

随机推荐

  • 如何将图库中的图像存储到 SQLite 数据库中

    我已经尝试使用此代码将图像从图库上传到我的应用程序中的 sqllite 数据库 但是当我的应用程序尝试打开图库时 它给出强制关闭错误 我不知道问题是什么 请帮助我并提前感谢 public class ImagggggggActivity e
  • 转换后的 mp4 h264 基线格式加载时间较长

    我已将视频转换为 mp4 x264 基线格式 并且它可以在所有 PC 手机上正常工作 问题是加载视频需要很长时间 而谷歌搜索发现 ffmpeg 会在视频的末尾处转换并设置索引文件因此它会加载到最后阅读 然后播放视频 因此任何缩短加载时间的建
  • Iterator 类和 foreach 构造之间的性能差异

    我正在运行以下代码 但有时在运行它时会出现某种并发异常 ArrayList
  • 计算青蛙到达河对岸所需的最少跳跃次数

    我正在处理下面提供的 Codility 问题 斐波那契数列使用以下递归公式定义 F 0 0 F 1 1 F M F M 1 F M 2 if M gt 2 一只小青蛙想要到河的对岸 青蛙最初位于河的一侧 位置 1 并想要到达另一侧 位置N
  • 检查 PHP 中的多个变量(布尔值)

    我在我的代码中使用它 但我认为它可以改进并且可以用更简单的方式完成 if phaseOne true phaseTwo true phaseThree true 你可以这样做 if phaseOne phaseTwo phaseThree
  • 在 Pandas 中按组回填列

    我有一个类似的csv A B C D 1 2 1 2 30 100 1 2 40 100 4 5 4 5 60 200 4 5 70 200 8 9 第 1 行和第 4 行中缺少 C 值 NaN 我想分别从第 2 行和第 5 行获取它们的值
  • 如何在GroupLayout Java中设置Jframe背景图片

    我试图为我的框架设置背景图像 但它不起作用 我尝试了这个链接 在 JFrame 中设置背景图像 代码 setContentPane new JLabel new ImageIcon ImageIO read new File Images
  • split 不返回空元素

    为什么这些不都返回bbb perl e a print map b split a lt
  • 过滤器功能 dplyr 似乎不起作用[关闭]

    Closed 这个问题是无法重现或由拼写错误引起 目前不接受答案 假设我在 R Studio 中加载了一个名为 exprCore1 的数据框 df 如下所示 measure qid value 1 p5 1 0 2 2 p100 1 0 8
  • Angular2路由器保留查询字符串

    我编写了一个使用路由器的 Angular2 v2 0 1 应用程序 该网站加载了多个查询字符串参数 因此完整的 URL 最初如下所示 https my application com param1 val1 param2 val2 para
  • 设计以避免派生类中的类型转换?

    public interface IBasePresenter public interface IJobViewPresenter IBasePresenter public interface IActivityViewPresente
  • 使用变量过滤器列出文件

    我正在尝试在 shell bash 中使用过滤器列出文件 这个例子有效 result ls A1 A2 txt echo result 文件1 A1 txt 文件2 A2 txt 但是当将过滤器放入变量中时 它不起作用 filter A1
  • 带 AVPlayer 的应用程序启动后播放 mp4 中断 iPod 音乐

    我的应用程序使用 AVPlayer 播放 mp4 当我的应用程序完成启动时 它会中断 iPod 音乐 尽管我已将音频会话设置为允许与其他人混合 BOOL application UIApplication application didFi
  • C++(LAPACK、sgels)和 Python(Numpy、lstsq)结果之间的差异

    我正在比较 C 和 Python 计算的数值结果 在 C 中 我利用 LAPACK 的 sgels 函数来计算线性回归问题的系数 在 Python 中 我使用 Numpy 的 linalg lstsq 函数来完成类似的任务 sgels 和
  • Angular2:渲染/重新加载组件的模板

    理想情况下 我需要重新加载 重新渲染我的组件模板 但如果有更好的方法来做到这一点 我将很乐意实现它 期望的行为 所以 我有一个菜单元素的组件 什么时候 在另一个组件中 我点击一个 IBO 每说某种 客户 被点击我需要add 我在用着 ngI
  • clojure.java.sh:没有这样的文件或目录

    我编写了一个程序来汇编 dot 文件 并想使用 Clojure 的sh给出编译命令 具体来说 我使用以下函数来做到这一点 defn compile graphviz Dumps graphviz string to a file then
  • 从常见图像格式中删除所有元数据?

    我正在为一个项目编写一项服务来处理我们的图像处理 一个这样的过程应该从数据中剥离所有元数据byte 提供并返回相同的图像byte 我目前正在研究的方法涉及始终将图像转换为Bitmap 然后将其转换回原始格式并从 a 返回数据MemorySt
  • 使用 Microsoft Graph 客户端库访问 One Drive 时无法检索用户的 mysite URL

    尝试访问 One Drive 内容时 使用 Microsoft Graph 客户端库的以下代码段失败 var items Graphclient Me Drive Root Children Request GetAsync Result
  • 执行“捆绑安装”后无法找到 Gemfile

    嘿 我对 Rails 完全陌生 刚刚开始按照教程的步骤创建我的第一个项目 我使用以下方法创建了新项目 rails myapp 那我应该执行bundle install 这不起作用 因为尚未安装捆绑程序 在 Gems 更新并安装捆绑程序后我已
  • Elasticsearch 聚合将结果转换为小写

    我玩了一下 ElasticSearch 在进行聚合时发现了一个问题 我有两个端点 A and B 在第一个中 我有第二个的父母 因此 B 中的一个或多个对象必须属于 A 中的一个对象 因此 B 中的对象有一个属性 parentId 其父级索