首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >沃森检索和排名服务不返回搜索结果,并且在尝试使用自定义功能训练Ranker时出现Solr错误。

沃森检索和排名服务不返回搜索结果,并且在尝试使用自定义功能训练Ranker时出现Solr错误。
EN

Stack Overflow用户
提问于 2017-04-24 08:18:05
回答 1查看 132关注 0票数 0

因此,我有以下问题:

当我尝试使用我受过搜索训练的Ranker时,我会得到以下错误消息:

代码语言:javascript
复制
pysolr.SolrError: Solr responded with an error (HTTP 500): [Reason: Can not rerank results. Verify that your schema has not changed in incompatible ways.]

我就是这样请求结果的:

代码语言:javascript
复制
pysolr_client._send_request("GET", path='/fcselect?q=%s&ranker_id=%s&wt=json' % (Question, ranker_id))

当我试图不通过Python执行时,但是通过curl,我会得到以下错误:

代码语言:javascript
复制
{"responseHeader":{"status":400,"QTime":1},"error":{"metadata":["error-class","org.apache.solr.common.SolrException","root-error-class","org.apache.solr.common.SolrException"],"msg":"Bad contentType for search handler :application/octet-stream request=...}","code":400}}

(我忽略了请求本身,没有在这里发布ranker id )。

我发送的curl请求如下:

代码语言:javascript
复制
curl -X POST -u "*username*":"*password*" "https://gateway.watsonplatform.net/retrieve-and-rank/api/v1/solr_clusters/*solr_cluster_id*/solr/Question_collection/fcselect?ranker_id=*ranker_id*&q=*question*?&wt=json"

我找到了以下curl的解决方案:只添加一个-H "Content-Type: application/json",结果显示了一些文档,但是在响应的末尾,它仍然显示相同的错误。此外,我还看到以下跟踪:

代码语言:javascript
复制
org.apache.solr.common.SolrException: Can not rerank results. Verify that your schema has not changed in incompatible ways.
at com.ibm.watson.hector.plugins.utils.ExceptionHandlingUtil.logAndThrowSolrException(ExceptionHandlingUtil.java:36)
at com.ibm.watson.hector.plugins.ss.FCFeatureGeneratorComponent.rerank(FCFeatureGeneratorComponent.java:743)
at com.ibm.watson.hector.plugins.ss.FCFeatureGeneratorComponent.process(FCFeatureGeneratorComponent.java:348)
at org.apache.solr.handler.component.SearchHandler.handleRequestBody(SearchHandler.java:272)
at org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:155)
at org.apache.solr.core.SolrCore.execute(SolrCore.java:2102)
at org.apache.solr.servlet.HttpSolrCall.execute(HttpSolrCall.java:654)
at org.apache.solr.servlet.HttpSolrCall.call(HttpSolrCall.java:460)
at org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:257)
at org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:208)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)
at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:585)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)
at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:577)
at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:223)
at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1127)
at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:515)
at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185)
at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1061)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:215)
at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:110)
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:97)
at org.eclipse.jetty.server.Server.handle(Server.java:499)
at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:310)
at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:257)
at org.eclipse.jetty.io.AbstractConnection$2.run(AbstractConnection.java:540)
at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:635)
at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:555)
at java.lang.Thread.run(Thread.java:745)

问题是,在训练牧羊人和使用它之间,我甚至没有碰过其他任何东西。不是架构,不是集合,也不是名称。我只有一个集合,一个配置,所有东西中的一个,除了文档- 294个。

我所经历的整个过程都是为一个没有自定义功能的Ranker工作的。但是有了自定义功能,它就没有了。

我通过本教程创建了具有自定义功能的沃森兰克:https://medium.com/machine-learning-with-ibm-watson/developing-with-ibm-watson-retrieve-and-rank-part-3-custom-features-826fe88a5c63

据我所知,由于本教程我所做的一切就是更改trainingdata.txt文件,培训过程是一样的。

现在我已经没有什么办法解决这个问题了。

你有什么意见建议?

提前谢谢!)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-04-25 15:12:42

在server.py of rr_custom_scorer_proxy,这是一件愚蠢的事情。当它写的‘答案’csv,必须重新由评级者,它打开文件在'wt‘模式,这导致空行之间的每一行。这件事不能被牧羊人处理,我们会出差错。

如果你把它改为“wb”,一切都很好。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43583043

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档