带有过滤条件和字符串搜索的Elasticsearch bool查询返回不一致的结果

时间:2018-12-05 23:55:18

标签: elasticsearch

我正在对Elasticsearch运行以下查询,该查询基于字符串搜索和属性项匹配来匹配文档。当我通过一个学期时,我会得到预期的结果,但是当我添加第二学期时,我不会得到相同的结果。想法?

{
  "_source": {
    "includes": [
      "docID"
    ]
  },
  "query": {
    "bool": {
      "must": [
        {
          "terms": {
            "userID": [
              1,
              2,
              71
            ]
          }
        },
        {
          "query_string": {
            "query": "**test**",
            "fields": [
              "attachment.content"
            ]
          }
        }
      ]
    }
  }
}

如果我仅传递用户ID 1,而忽略其他ID,则将获得期望的docID(即1,4,8),但是当我传递所有三个用户ID时,结果中将缺少几个docID(即1,6 ,8,但没有4)。使用Elasticsearch 6.5。

希望有人能比我理解得更好!

谢谢!

1 个答案:

答案 0 :(得分:1)

默认情况下,ES返回结果为10。也许丢失的文档在下一页中。我们可以将大小增加到更大的数字,例如:

/pages