【问题标题】:Couchbase with Elasticsearch Plug-in (cannot find any documents in a database)带有 Elasticsearch 插件的 Couchbase(在数据库中找不到任何文档)
【发布时间】:2018-11-07 14:59:28
【问题描述】:

我正在尝试将 ElasticSearch(版本 5.6.7) 连接到 Couchbase(版本 5.1.0)

我正在使用 Elasticsearch Transport Couchbase(版本 elasticsearch-transport-couchbase-3.0.1-cypress-es5.6.7.zip),它应该适用于我的 ElasticSearch 版本(版本 5.6.7 )。

我正在遵循这些官方指示:

1)https://developer.couchbase.com/documentation/server/5.1/connectors/elasticsearch/getting-started.html;

2) https://github.com/couchbaselabs/elasticsearch-transport-couchbase.

一切似乎都很好,但是当我尝试使用 elasticsearch 查询我的沙发库时我总是得到 0 个结果

{"took":2,"timed_out":false,"_shards":{"total":5,"successful":5,"skipped":0,"failed":0},"hits":{"total":0,"max_score":null,"hits":[]}}

我正在使用此链接查询我的数据库(其中 elastic-bucket 是在 elasticsearch 配置期间创建的索引):http://localhost:9200/elastic-bucket/_search?q=photo

我不知道该怎么做,因为我无法理解问题到底是什么。

我只能在 ElasticSearch 中找到与日志消息相关的内容:

java.lang.NoClassDefFoundError: javax/xml/bind/DatatypeConverter
at org.elasticsearch.transport.couchbase.capi.ElasticSearchCAPIBehavior.bulkDocs(ElasticSearchCAPIBehavior.java:360) ~[elasticsearch-transport-couchbase-3.0.1-cypress-es5.6.7-all.jar:?]
at com.couchbase.capi.servlet.CAPIServlet.handleBulkDocs(CAPIServlet.java:532) ~[couchbase-capi-server-1.6.3.jar:?]
at com.couchbase.capi.servlet.CAPIServlet.service(CAPIServlet.java:89) ~[couchbase-capi-server-1.6.3.jar:?]
at javax.servlet.http.HttpServlet.service(HttpServlet.java:790) ~[javax.servlet-api-3.1.0.jar:3.1.0]
at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:845) ~[jetty-servlet-9.3.13.v20161014.jar:9.3.13.v20161014]
at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:584) [jetty-servlet-9.3.13.v20161014.jar:9.3.13.v20161014]
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143) [jetty-server-9.3.13.v20161014.jar:9.3.13.v20161014]
at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:513) [jetty-security-9.3.13.v20161014.jar:9.3.13.v20161014]
at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:226) [jetty-server-9.3.13.v20161014.jar:9.3.13.v20161014]
at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1180) [jetty-server-9.3.13.v20161014.jar:9.3.13.v20161014]
at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:512) [jetty-servlet-9.3.13.v20161014.jar:9.3.13.v20161014]
at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185) [jetty-server-9.3.13.v20161014.jar:9.3.13.v20161014]
at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1112) [jetty-server-9.3.13.v20161014.jar:9.3.13.v20161014]
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141) [jetty-server-9.3.13.v20161014.jar:9.3.13.v20161014]
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:134) [jetty-server-9.3.13.v20161014.jar:9.3.13.v20161014]
at org.eclipse.jetty.server.Server.handle(Server.java:523) [jetty-server-9.3.13.v20161014.jar:9.3.13.v20161014]
at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:320) [jetty-server-9.3.13.v20161014.jar:9.3.13.v20161014]
at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:251) [jetty-server-9.3.13.v20161014.jar:9.3.13.v20161014]
at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:273) [jetty-io-9.3.13.v20161014.jar:9.3.13.v20161014]
at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:95) [jetty-io-9.3.13.v20161014.jar:9.3.13.v20161014]
at org.eclipse.jetty.io.SelectChannelEndPoint$2.run(SelectChannelEndPoint.java:93) [jetty-io-9.3.13.v20161014.jar:9.3.13.v20161014]
at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.executeProduceConsume(ExecuteProduceConsume.java:303) [jetty-util-9.3.13.v20161014.jar:9.3.13.v20161014]
at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.produceConsume(ExecuteProduceConsume.java:148) [jetty-util-9.3.13.v20161014.jar:9.3.13.v20161014]
at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.run(ExecuteProduceConsume.java:136) [jetty-util-9.3.13.v20161014.jar:9.3.13.v20161014]
at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:671) [jetty-util-9.3.13.v20161014.jar:9.3.13.v20161014]
at org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:589) [jetty-util-9.3.13.v20161014.jar:9.3.13.v20161014]
at java.lang.Thread.run(Unknown Source) [?:?]

有人有什么想法吗? 提前致谢!

【问题讨论】:

    标签: elasticsearch couchbase elasticsearch-plugin


    【解决方案1】:

    该异常表示插件doesn't like running under Java 9。感谢您报告此事。

    在短期内,您可以尝试使用 Java 8 运行 Elasticsearch,或尝试How to resolve java.lang.NoClassDefFoundError: javax/xml/bind/JAXBException in Java 9 中提供的其他解决方案之一

    要尝试的另一件事是查看您是否可以通过 ID 获取文档,其 URL 类似于 http://localhost:9200/elastic-bucket/<document-type>/<document-id>(其中 <document-type> 通常为 couchbaseDocument,除非您已将插件配置为使用其他内容)。如果您可以通过这种方式获取文档,但不能通过搜索获取​​文档,那么日志中的堆栈跟踪可能是不相关的,并且mapping type 的定义方式可能存在问题。

    免责声明:我在 Couchbase 工作并维护 Elasticsearch 连接器。

    【讨论】:

    • 更新:此问题已在连接器插件的 3.0.2 版中得到修复。
    猜你喜欢
    • 2016-05-14
    • 2021-02-27
    • 1970-01-01
    • 2017-01-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-22
    相关资源
    最近更新 更多