elasticsearch Elasticsearch术语查询仅在_id字段上工作,elasticsearch,elasticsearch" /> elasticsearch Elasticsearch术语查询仅在_id字段上工作,elasticsearch,elasticsearch" />

elasticsearch Elasticsearch术语查询仅在_id字段上工作

elasticsearch Elasticsearch术语查询仅在_id字段上工作,elasticsearch,elasticsearch,我一直在尝试做一个类似于IN查询的操作。为了说明问题,我找到的最简单的方法是: 获取{URL}/index/\u搜索 { "query": { "terms": { "id": [ "0b54ffc1-cea9-4e5d-9766-559720621922", "0658115e-60b3-439d-9f1a-343ab914806b"], "boos

我一直在尝试做一个类似于IN查询的操作。为了说明问题,我找到的最简单的方法是:

获取{URL}/index/\u搜索

{
  "query": {
    "terms": {
      "id": [ "0b54ffc1-cea9-4e5d-9766-559720621922", "0658115e-60b3-439d-9f1a-343ab914806b"],
      "boost": 1.0
    }
  }
}
即使我有带有这些ID字段的文档,也不会返回任何命中率。 然而,如果我使用这个索引的_id是相同的,我会得到结果,即

{
  "query": {
    "terms": {
      "_id": [ "0b54ffc1-cea9-4e5d-9766-559720621922", "0658115e-60b3-439d-9f1a-343ab914806b"],
      "boost": 1.0
    }
  }
}
实际上,我想使用一个完全不同的字段,即“user.id”(im为嵌套的firebase字段编制索引),这也不起作用,但上面的示例特别令人困惑

为了验证这一点,我附上了一个屏幕截图,其中显示了两个字段和我感兴趣的字段中具有相同值的行的kibana结果

谢谢任何人的帮助


如果检查映射,您的
id
字段可能是
text
类型。您可能有一个名为
id.keyword
的子字段,其类型为
keyword
,如果是这种情况,您可以使用该子字段来实现所需的功能:

{
  "query": {
    "terms": {
      "id.keyword": [ "0b54ffc1-cea9-4e5d-9766-559720621922", "0658115e-60b3-439d-9f1a-343ab914806b"],
      "boost": 1.0
    }
  }
}