【问题标题】:Elasticsearch and NEST: Filtering with LookupsElasticsearch 和 NEST:使用查找进行过滤
【发布时间】:2016-05-24 09:46:22
【问题描述】:

我正在使用 Elasticsearch 1.7.x(和 NEST 1.7.2)并尝试利用此处记录的查找过滤功能:Terms Filter Lookup。我能够为我想要的请求手动制作 JSON 并使用 Sense 执行它。效果很好,很棒的功能!但是,在 NEST 库中,我看不到创建此类条款子句的方法。例如,从上面引用的链接中,我可以执行以下操作:

"terms" : {
   "proteins" : {
      "index" : "microarrays",
      "type" : "experiment",
      "id" : "experiment1234",
      "path" : "upregulated_proteins"
   },
   "_cache_key" : "experiment_1234"
}

有没有办法使用 NEST 构建这个查询?如果没有,有没有办法在构建 NEST 查询时将一些 JSON 注入?我不知道 NEST 2.x+ 是否支持这一点,但升级到 ES 2.x 对我们来说是一个长期计划,我想利用 ES 1.7 中已经提供的功能。

【问题讨论】:

    标签: elasticsearch nest


    【解决方案1】:

    太棒了,我已经收到了来自 Elastic 的Greg Marzouka 的回复!他说:

    它在 1.x 中被映射为 TermsLookup() 或 TermsLookupFilter。查看unit tests 获取一些示例。

    client.Search<Paper>(s => s
       .Query(q => q
          .Filtered(fq => qf
             .Filter(f => f
                .CacheKey("experiment_1234")
                .TermsLookup(t => t
                   .Lookup<Protein>(p => p.UnregulatedProteins, "experiment1234", "microarrays", "experiment") 
                )
             )
          )
       ));
    

    在 2.x 中,它更符合 ES 查询 DSL。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-07-06
    • 1970-01-01
    • 1970-01-01
    • 2023-03-15
    • 2021-07-29
    • 2020-09-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多