elasticsearch - 带有 Elasticsearch 插件的 Couchbase(在数据库中找不到任何文档)
问题描述
我正在尝试将ElasticSearch (version 5.6.7)连接到Couchbase (version 5.1.0)。
我正在使用Elasticsearch Transport Couchbase(版本 elasticsearch-transport-couchbase-3.0.1-cypress-es5.6.7.zip),它应该适用于我的 ElasticSearch 版本(版本 5.6.7)。
我正在遵循这些官方说明:
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) [?:?]
有人有任何想法吗?提前致谢!
解决方案
该异常表明该插件不喜欢在 Java 9 下运行。感谢您报告此事。
在短期内,您可以尝试使用 Java 8 运行 Elasticsearch,或尝试如何解决 java.lang.NoClassDefFoundError: javax/xml/bind/JAXBException in Java 9中介绍的其他解决方案之一
另一件要尝试的事情是查看您是否可以通过 ID 获取文档,使用类似的 URL http://localhost:9200/elastic-bucket/<document-type>/<document-id>
(<document-type>
通常是在哪里,couchbaseDocument
除非您已将插件配置为使用其他东西)。如果您可以通过这种方式获取文档,但不能通过搜索获取,那么日志中的堆栈跟踪可能是不相关的,并且映射类型的定义方式可能存在问题。
免责声明:我为 Couchbase 工作并维护 Elasticsearch 连接器。
推荐阅读
- outlook - 适用于仅命令加载项的 Office 365 清单
- javascript - 如何遍历 Typescript 中的地图:for...in?为了……的?为每个?
- powershell - 使用 Powershell 部署 SSIS - 缺少 DMF
- datetime - 如何判断给定的 NaiveDateTime(加上像“US/Mountain”这样的时区)是否在 Elixir 的过去?
- mongodb - 如何使用驱动程序在 MongoDB 中进行文档版本控制
- json - Postgresql 如何在 jsonb 中求和(值)并按月份对它们进行分组?
- javascript - 如何切换开/关切换功能?
- python - SimpleImputer ValueError
- sql - 在 Postgres 中检查用户的登录权限
- google-apps-script - 谷歌脚本只导入少数带有脚本的列