0

Java ラッパーを使用して retrieveAndRank クエリを実行しようとしています。私は、Retrieve and Rank API のオンライン Javadoc に従っています。SearchAndRank の例は次のとおりです。

https://www.ibm.com/watson/developercloud/retrieve-and-rank/api/v1/#query_ranker

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);

ただし、RetrieveAndRank クラスにはそのような rank(String rankerId, QueryResponse response) メソッドはありません。ファイルまたはInputStreamを引数として取得するだけです(IBMのソースコードを閲覧すると、Java QueryResponseではなくCSVコンテンツが必要であることがわかります)。

QueryResponse を rank メソッドに渡すにはどうすればよいですか?

solr-solrj-5.5.2.jar および java-sdk-3.2.0-jar-with-dependencies.jar ライブラリを使用しています

4

1 に答える 1

1

/fcselectクエリ ハンドラを使用し、パラメータとして を送信する必要がありranker_idます。

以下のコードは、ドキュメントを含む Solr コレクションがあり、ランカーをトレーニング済みであることを前提としています。それ以外の場合は、このチュートリアルに従ってください。

 RetrieveAndRank service = new RetrieveAndRank();
 service.setUsernameAndPassword(USERNAME, PASSWORD);

 // create the solr client
 String solrUrl = service.getSolrUrl(SOLR_CLUSTER_ID);
 HttpClient client = createHttpClient(solrUrl, USERNAME, PASSWORD);
 HttpSolrClient solrClient = new HttpSolrClient(solrUrl, client);

 // build the query
 SolrQuery query = new SolrQuery("*:*");
 query.setRequestHandler("/fcselect");
 query.set("ranker_id", RANKER_ID);

 // execute the query
 QueryResponse response = solrClient.query(SOLR_COLLECTION_NAME, query);
 System.out.println("Found " + response.getResults().size() + " documents!");
 System.out.println(response);

USERNAMERetrieveAndRank(およびPASSWORD)、SOLR_CLUSTER_IDSOLR_COLLECTION_NAMEおよびのサービス資格情報を必ず更新してくださいRANKER_ID。のコードはcreateHttpClient()ここにあります

于 2016-08-06T22:38:39.523 に答える