2015-11-02 96 views
-1

我有一個查詢。因爲它只需要過濾器數據,它不需要評分,但不起作用。使用fq查詢,而不是q查詢,但它不工作

public static void testFqQuery()throws Exception{ 
    SolrQuery sq=new SolrQuery(); 
    sq.addFilterQuery("rowkey:2d8cf7bc5fb9ef9b7780a76f9b8c7c1a"); 
    QueryResponse response = sc.query(sq); 
    SolrDocumentList results = response.getResults(); 
    System.out.println("hits:"+results.getNumFound()); 
    for(SolrDocument sd:results){ 
     System.out.println(sd.get("rowkey")); 
    } 
    sc.close(); 
} 
+0

你會得到任何具體的錯誤?請將實際的代碼粘貼到圖片上 – prasun

+0

@prasun它沒有錯誤,但它也沒有結果,您可以在您的環境中嘗試。 –

回答

1

我相信你仍然需要一個q值來使過濾器查詢工作。所以,你會做這樣的事情:「我要符合此過濾器的所有記錄」

sq.setQuery("*:*");

這是有道理的,如果你仔細想想,因爲你告訴Solr的,

+0

你說得對。至於[請參閱參考資料](https://cwiki.apache.org/confluence/display/solr/The+Standard+Query+Parser):q - 使用標準查詢語法定義查詢。該參數是強制性的。 – cheffe