Elasticsearch:文档大小和查询性能

bet*_*o86 9 elasticsearch

我有一个ES索引,中等大小的文档(15-30 Mb或多或少).

每个文档都有一个布尔字段,大多数时候用户只想知道特定文档ID是否将该字段设置为true.

文档大小会影响此查询的性能吗?

   "size": 1,
   "query": {
      "term": {
         "my_field": True
      }
   },
   "_source": [
      "my_field"
   ]
Run Code Online (Sandbox Code Playgroud)

并且"大小":0查询会产生更好的时间性能吗?

jor*_*dor 1

添加"size":0到您的查询中,您将避免一些净传输,此行为将提高您的性能时间。

但据我了解你的使用情况,你可以使用count

查询示例:

curl -XPOST 'http://localhost:9200/test/_count -d '{
      "query": {
        "bool": {
          "must": [
            {
              "term": {
                "id": xxxxx
              }
            },
            {
              "term": {
                "bool_field": True
              }
            }
          ]
        }
      }
    }'
Run Code Online (Sandbox Code Playgroud)

通过此查询仅检查是否有总计,您将知道具有某个 id 的文档是否已将 bool 字段设置为 true/false,具体取决于您在查询时 bool_field 中指定的值。这会非常快。