我尝试将 elasticsearch 客户端从 1.x 升级到当前版本 5.5.2(仅传输层),在修复所有 API 更改后,我遇到了记录器桥的主要问题。
正如文档中所述,我添加了必要的依赖项
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-to-slf4j</artifactId>
<version>2.8.2</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.24</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)
但我仍然遇到以下异常(详细信息):
Caused by: java.lang.NoSuchMethodError: org.apache.logging.log4j.Logger.debug(Ljava/lang/String;Ljava/lang/Object;)V
at org.elasticsearch.threadpool.ThreadPool.<init>(ThreadPool.java:203)
at org.elasticsearch.client.transport.TransportClient.buildTemplate(TransportClient.java:129)
at org.elasticsearch.client.transport.TransportClient.<init>(TransportClient.java:265)
at org.elasticsearch.transport.client.PreBuiltTransportClient.<init>(PreBuiltTransportClient.java:130)
at org.elasticsearch.transport.client.PreBuiltTransportClient.<init>(PreBuiltTransportClient.java:116)
at org.elasticsearch.transport.client.PreBuiltTransportClient.<init>(PreBuiltTransportClient.java:106)
at net.my-local-stuff.nia.NiaApplication.esClient(NiaApplication.java:168)
Run Code Online (Sandbox Code Playgroud)
在升级之前,我将 logback 作为记录器,并且它仍然由我自己的代码中的 slf4j 外观拉动(显然它不会在 elasticsearch 的代码中拉动)。
如果有人想查看依赖树的要点。对我来说,似乎所有必要的依赖项都在那里。
关于日志记录的所有内容似乎最终都出现在一个未找到的类中(虽然我以某种方式获得了一个记录器实例,但该记录器实例没有所有方法。:-()。
非常感谢弗里克的帮助
我目前正在评估 Datomic 用于存储和查询构成本体的已解析符号的用例。数据库中总共有 225122 个符号(实体)(所以它是一个相当大的本体,但对于 DB 来说应该不是什么大问题)。
结构非常标准,符号有
为了更好地访问符号,我们name为每个符号设置了唯一的。这加起来就是以下 Datomic 模式:
[{:db/ident :ml/name,
:db/valueType :db.type/string,
:db/cardinality :db.cardinality/one,
:db/unique :db.unique/identity}
{:db/ident :ml/parent,
:db/valueType :db.type/ref,
:db/index true,
:db/cardinality :db.cardinality/one}
{:db/ident :ml/superclass,
:db/valueType :db.type/ref,
:db/index true,
:db/cardinality :db.cardinality/one}]
Run Code Online (Sandbox Code Playgroud)
现在我有了最基本的递归查询“给我所有(传递)包含在符号中的符号p”。在数据方面:
(def rules
'[
[(ubersymbol ?c ?p) (?c :ml/parent ?p)]
[(ubersymbol ?c ?p) (?c :ml/parent ?c1) (ubersymbol ?c1 ?p) ]
])
(q '[:find ?c ?n :in $ % :where
(ubersymbol ?c ?d) [?d :ml/name "name of …Run Code Online (Sandbox Code Playgroud)