Как выполнить метод searchAndRank в IBM Watson Retrieve And Rank API через Java-оболочку

Я пытаюсь выполнить запрос retrieveAndRank с помощью Java-оболочки. Я следую онлайн-документам javadocs для получения и ранжирования API. Пример для 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, я вижу, что там ожидается содержимое CSV, а не java QueryResponse).

Как мне передать QueryResponse методу rank?

Я использую библиотеки solr-solrj-5.5.2.jar и java-sdk-3.2.0-jar-with-dependencies.jar.


person icordoba    schedule 05.08.2016    source источник


Ответы (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);

Убедитесь, что вы обновили учетные данные службы для RetrieveAndRank (USERNAME и PASSWORD), SOLR_CLUSTER_ID, SOLR_COLLECTION_NAME и RANKER_ID. Код для createHttpClient() можно найти здесь.

person German Attanasio    schedule 06.08.2016