【问题标题】:ES - Storing Percolate Queries using JESTES - 使用 JEST 存储渗透查询
【发布时间】:2015-08-28 11:42:03
【问题描述】:

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

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

  • 渗透查询应该存储在哪里?
  • 是否应该像普通文档一样将查询保存在索引中?

下面是我尝试过的sn-p代码,但它不起作用。

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

【问题讨论】:

    标签: elasticsearch elasticsearch-jest


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-02-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-11-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多