2016-06-27 28 views
0

有没有人使用过检索& Java SDK的排名服务(尤其是排名服务)?关于Java中的Retrieve&Rank服务的“排名”的说明

我想了解它是如何工作的,因为一些点似乎我不合乎逻辑:

  • 是什么Java的方法,我们必须执行与Apache Solr的搜索查询,然后调用方法之间的差异rank;和CURL方法,我们只需要运行一个查询?
  • 为什么rank方法需要一个包含搜索查询结果的CSV文件,而我们显然不能在CSV中搜索查询的结果?

我没有在这documentation也没有在这example找到我的回应neitheir。

谢谢你的时间。

回答

0

我从来没有使用过,但通过这里阅读文档检索和排名是我的想法

  1. 我不认为有Java的方法和卷曲之间的任何差异。据我了解搜索和排名在卷曲使用此命令

    卷曲-u “{用户名}”: “{}密码” “https://gateway.watsonplatform.net/retrieve-and-rank/api/v1/solr_clusters/sc1ca23733_faa8_49ce_b3b6_dc3e193264c6/solr/example_collection/fcselect?ranker_id=B2E325-rank-67&q=what%20is%20the%20basic%20mechanism%20of%20the%20transonic%20aileron%20buzz&wt=json&fl=id,title

而在Java

RetrieveAndRank service = new RetrieveAndRank(); 
service.setUsernameAndPassword("{username}","{password}"); 
HttpSolrClient solrClient = new HttpSolrClient; 
solrClient = getSolrClient(service.getSolrUrl("scfaaf8903_02c1_4297_84c6_76b79537d849"), "{username}","{password}"); 
SolrQuery query = new SolrQuery("what is the basic mechanism of the transonic aileron buzz"); 
QueryResponse response = solrClient.query("example_collection", query); 
Ranking ranking = service.rank("B2E325-rank-67", response); 
System.out.println(ranking); 

我认为curl命令会做什么,在后端它会使用指定的查询在Solr中进行搜索,并在结果返回后对它们进行排名。 在Java中,这是显式完成的,而不是有一个方法queryAndRank,你有两个方法,一个将在Solr中运行,从那里得到结果,然后将这些结果转发给排名系统。

  1. Solr中的搜索可以返回csv。

的CSVResponseWriter可以写在 CSV格式的响应文件清单。

http://wiki.apache.org/solr/CSVResponseWriter

+0

感谢您的答复。不幸的是,这个文件已经过时了,因为不可能这样做:'service.rank(“B2E325-rank-67”,response)'。现在,我们必须这样做:'service.rank(rankerId,answerCsvFile,topAnswerInteger)'。对于第二点,它可能在CURL中,但在Java中,当我尝试设置参数wt时,它不起作用(更多详细信息:http://stackoverflow.com/questions/29015996/i-want - 输出将要合的CSV时-I-查询Solr的,但是,输出仍然附带功能于javabin) –