小编h3x*_*x3d的帖子

Clojure 模块依赖

我正在尝试在 clojure 中创建一个模块化应用程序。

假设我们有一个博客引擎,它由两个模块组成,例如 - 数据库模块和文章模块(存储博客文章的东西),所有模块都有一些配置参数。

所以 - 文章模块依赖于存储,并且拥有文章模块和数据库模块的两个实例(具有不同的参数)允许我们在两个不同的数据库中托管两个不同的博客。

我试图实现这一点,为每个初始化的模块即时创建新的命名空间,并在这个命名空间中使用部分应用的参数定义函数。但我认为这种方法是某种黑客行为。

这样做的正确方法是什么?

modularity clojure dependency-management

5
推荐指数
1
解决办法
617
查看次数

在clojure中使用reduce分组

我想聚合大型数据集以获得类似的东西

SELECT SUM(`profit`) as `profit`, `month` FROM `t` GROUP BY `month`
Run Code Online (Sandbox Code Playgroud)

所以,我像这样修改了clojure的分组功能

(defn group-reduce [f red coll]
  (persistent!
   (reduce
    (fn [ret x]
      (let [k (f x)]
        (assoc! ret k (red (get ret k) x))))
    (transient {}) coll)))
Run Code Online (Sandbox Code Playgroud)

这是用法:

(group-reduce :month (fn [s x]
                       (if s
                         (assoc s :profit (+ (:profit s) (:profit x)))
                         x))
              [{:month 10 :profit 12}
               {:month 10 :profit 15}
               {:month 12 :profit 1}])

#_=> {10 {:profit 27, :month 10}, 12 {:profit 1, :month 12}}
Run Code Online (Sandbox Code Playgroud)

它有效,但也许有另一种方法可以做到这一点,使用 clojure 标准库?

reduce group-by clojure

4
推荐指数
1
解决办法
1299
查看次数

Elasticsearch facet在多级嵌套文档上

我正在尝试计算多级嵌套文档中的构面.并且在docs或google中找不到任何示例,但发现了这个:

嵌套元素提供将使用的嵌套文档(可以是多级嵌套文档)的路径.(http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/search-facets.html#_all_nested_matching_root_documents)

但以下查询不起作用.查询此方面的正确方法是什么?

http://pastie.org/8526599 - 这是我正在尝试使用的映射

http://pastie.org/8526601 - 这里是非工作查询

facets elasticsearch

0
推荐指数
1
解决办法
2566
查看次数