首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从映射向量(Elasticseach桶)检索给定密钥的doc_count

如何从映射向量(Elasticseach桶)检索给定密钥的doc_count
EN

Stack Overflow用户
提问于 2022-02-28 22:36:38
回答 3查看 50关注 0票数 0

从Clojure Elasticsearch聚合查询中,我有一个映射的桶向量,如下所示,其中键是一个数字标识符,doc_count是出现的次数。

:buckets [{:key 14768496, :doc_count 464} {:key 14761312, :doc_count 440} {:key 14764921, :doc_count 412}]

给定一个类似于14768496的值,我希望能够检索doc_count,这里是464

EN

回答 3

Stack Overflow用户

发布于 2022-03-01 00:29:15

我对OP自己的答案提供了一些反馈,但我认为,作为一个答案,它本身是值得提供的:

代码语言:javascript
复制
user> (def buckets [{:key 14768496, :doc_count 464} {:key 14761312, :doc_count 440} {:key 14764921, :doc_count 412}])
#'user/buckets
user=> (def accounts (into {} (map (juxt :key :doc_count)) buckets))
#'user/accounts

这使用了map的换能器生成性作为into的"xform“参数,因此它避免了创建任何中间延迟序列。

您还可以执行(into {} (map (juxt :key :doc_count) buckets)),这将生成(键和文档计数)的向量对序列,然后将其“倒入”到一个空的散列映射中。

juxt返回一个参数的函数,该函数从每个参数的应用程序(传递给juxt的函数)生成向量到该参数:

代码语言:javascript
复制
user=> ((juxt inc dec) 42)
[43 41]
票数 3
EN

Stack Overflow用户

发布于 2022-02-28 22:36:38

在构思这个问题时,我遇到了下面的解决方案,我现在想和大家分享一下,因为我花了一段时间才找到正确的方法。

代码语言:javascript
复制
(def accounts (apply hash-map
                      (mapcat
                        #(vector (% :key) (% :doc_count))
                        buckets)))

这将产生以下地图:

代码语言:javascript
复制
{14768496 464, 14761312 440, 14764921 412}

现在,检索工作非常简单:

代码语言:javascript
复制
(println (accounts 14768496))
票数 0
EN

Stack Overflow用户

发布于 2022-03-01 00:02:05

创建accounts地图的另一种方法:

代码语言:javascript
复制
user> (def buckets [{:key 14768496, :doc_count 464} {:key 14761312, :doc_count 440} {:key 14764921, :doc_count 412}])
#'user/buckets
user> (def accounts (zipmap (map :key buckets) (map :doc_count buckets)))
#'user/accounts

或者..。

代码语言:javascript
复制
user> (defn find-doc-count [k buckets] (some #(when (= (:key %) k) (:doc_count %)) buckets))
#'user/find-doc-count
user> (find-doc-count 14768496 buckets)
464
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71301794

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档