在执行GET弹性搜索时是否可以添加过滤器?

时间:2013-08-22 19:15:24

标签: elasticsearch

我有一种情况,我希望在执行搜索时过滤结果,而不是使用elasticsearch进行GET过滤。基本上我有一个Document,它有一个状态字段,表明该实体具有丢弃状态。执行GET时,我需要检查该字段的值,从而在状态确实是“丢弃”时将其排除。

我知道我可以使用带有术语查询的搜索来执行此操作,但是当根据文档ID对索引使用GET时呢?

更新:经过进一步调查,似乎唯一的方法是使用渗透或搜索。如果有人有任何建议,我希望我错了。

只是为了澄清我正在使用Java API。

感谢

1 个答案:

答案 0 :(得分:1)

尝试这样的事情:

curl http://domain/my_index/_search -d '{
  "filter": {
    "and": [
      {
        "ids" : {
          "type" : "my_type",
          "values" : ["123"]
        }
      },
      {
        "term" : {
          "discarded" : "false"
        }
      }
    ]
  }
}

注意:如果某些文档上不存在丢弃的字段,您也可以使用丢失的过滤器。

注2:我认为这不会比正常的获取请求明显慢......