ES - 使用JEST存储Percolate查询

时间:2015-08-28 11:42:04

标签: elasticsearch jest

我正在使用ES 1.5.2版,并通过JEST包装器使用JAVA API。我想创建一些percolate查询并将它们存储在索引中。

在某些地方,我看到一种语法,表明我可以在任何索引中存储percolate查询,但类型必须是'.percolator'类型。在其他地方,我已经看到查询需要存储在一个名为'_percolator'的特殊索引中。

  • 应该在哪里存储percolate查询?
  • 查询是否应像常规文档一样保存在索引中?

以下是我尝试过的一段代码,但它不起作用。

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

1 个答案:

答案 0 :(得分:0)

.toString()上明确调用searchSourceBuilder可解决问题。不知道为什么要这样做;我原以为GSON会在JEST库中做到这一点。