小编xsc*_*xsc的帖子

Solr中的多词同义词搜索

我正在尝试使用同义词过滤器来搜索短语。

peter=> spider man, spiderman, Mary Jane, .....
Run Code Online (Sandbox Code Playgroud)

我使用默认配置。当我把这些同义词成synonym.txt,然后重新启动Solr的似乎只有部分工作:它开始搜索"spider""man""spiderman""Mary""Jane",但我要搜索的是有意义的组合是什么-样"spider man""Mary Jane""spiderman"

solr synonym

5
推荐指数
2
解决办法
4404
查看次数

如何在Clojure中创建一个最多执行N次操作的函数?

首先,我有一个像这样的Mysql表:

create table t (id int(11) PRIMARY KEY unsigned NOT NULL AUTO_INCREMENT, name varchar(20), age int(10));

我定义了一个在t中创建一行的函数:

(require '[honeysql.core :as sql])

(defn do-something []
    (sql/query {:insert-into  :t
                :values [{:name "name1" :age 10}]})
    (> 3 (rand-int 5)))
Run Code Online (Sandbox Code Playgroud)

现在我想运行这个函数,直到它返回true但最多N次.

这段take-times代码是错误的,因为repeat将eval do-something函数一次,然后构造惰性序列.

(defn take-times []
   (some true? (repeat 5 (do-something))))
Run Code Online (Sandbox Code Playgroud)

无论返回什么,这take-times2将减少do-something5次do-something.

(defn take-times2 []
    (some true? (for [i (range 5)]
                  (do-something))))
Run Code Online (Sandbox Code Playgroud)

如果我不使用递归函数和宏,我该怎么办?

clojure

3
推荐指数
1
解决办法
123
查看次数

clojure - 在这种情况下对'apply'的解释

我理解apply如何在一个像这样的简单表达式中工作:

(apply + '(1 2 3))
Run Code Online (Sandbox Code Playgroud)

在我正在阅读的书中,我遇到了一个更复杂的例子.

(def make
     (fn [class & args]
       (let [seeded {:__class_symbol__ (:__own_symbol__ class)}
             constructor  (:add-instance-values (:__instance_methods__ class))]
         (apply constructor seeded args))))
Run Code Online (Sandbox Code Playgroud)

在上面的例子中,seeded是一个map,args是一个ArraySeq.

任何人都可以解释在这种情况下如何应用?

clojure

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

如何将多个函数应用于单个公共参数?

如何将多个函数(每个函数生成一个映射)应用于一个公共参数,然后合并所有结果?这可以改进吗?

(merge {} (podr root) (version root) (year root) (month root))
Run Code Online (Sandbox Code Playgroud)

其中root是公共参数podrversionyearmonth是函数。

functional-programming clojure

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

标签 统计

clojure ×3

functional-programming ×1

solr ×1

synonym ×1