2015-08-28 50 views
0

存儲滲濾液查詢我使用的是ES版本1.5.2,並通過JEST包裝使得使用Java的API。我想創建一些percolate查詢並將它們存儲在索引中。ES - 使用JEST

在一些地方,我看到這表明我可以存儲在滲透的任何索引的查詢語法,但類型必須是類型「.percolator」的。在其他地方,我見過的查詢需要被存儲在一個名爲「_percolator」特殊指標。

  • 應該在哪裏滲濾液查詢儲存在哪裏?
  • 如果查詢被保存在索引像一個普通的文件是什麼?

下面是我試過的一段代碼,但它不起作用。

SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder(); 
searchSourceBuilder.query(QueryBuilders.matchQuery("stock", "apple")); 
saveDoc(searchSourceBuilder, "company-apple", "_percolator", "stocks"); 

public JestResult saveDoc(Object doc, String docId, String indexName, String type) { 
    Index index = new Index.Builder(doc).id(docId).index(indexName).type(type).build(); 
    return client.execute(index); 
} 

回答

0

調用.toString()明確對searchSourceBuilder解決了這個問題。不知道爲什麼要這樣做;我會想象,GSON將在稍後的JEST庫中做到這一點。