0

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

在某些地方,我看到一种语法表明我可以将渗透查询存储在任何索引中,但类型必须是“.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);
}
4

1 回答 1

0

.toString()显式调用searchSourceBuilder解决了这个问题。不知道为什么必须这样做;我原以为 GSON 稍后会在 JEST 库中执行此操作。

于 2015-08-28T19:51:42.043 回答