0

有没有人使用 Java SDK 的 Retrieve & Rank 服务(特别是 Rank 服务)?

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

  • Java 方法有什么区别,我们必须使用 Apache Solr 执行搜索查询,然后调用该方法rank;和 CURL 方法,我们只需要运行一个查询?
  • 为什么该方法rank采用包含搜索查询结果的 CSV 文件,而我们显然不能在 CSV 中获得搜索查询的结果?

我在本文档和本示例中都没有找到我的回复。

谢谢你的时间。

4

1 回答 1

0

我以前从未使用过 Retrieve 和 Rank,但通过阅读这里的文档是我的想法

  1. 我认为 Java 方法和 CURL 之间没有任何区别。据我了解,在 curl 中搜索和排名使用此命令

    curl -u "{username}":"{password}" " 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

于 2016-06-27T14:23:38.973 回答