0

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

我知道我可以使用带有术语查询的搜索来做到这一点,但是当对基于文档 ID 的索引使用 GET 时呢?

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

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

谢谢

4

1 回答 1

1

尝试这样的事情:

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

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

注意2:我认为这也不会比正常的get请求慢得多......

于 2013-08-22T21:01:35.257 回答