2016-06-27 32 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) –