0

我正在尝试执行 Elasticsearch 查询,该查询搜索文本字段(“正文”)并返回与我提供的两个多词短语中的至少一个匹配的项目(即:“堆栈溢出”或“堆栈溢出”)。我还希望查询仅提供在给定时间戳之后发生的结果,结果按时间排序。

我目前的解决方案如下。我相信 MUST 工作正常(gte 时间戳),但带有两个 match_phrases 的 BOOL + SHOULD 是不正确的。我收到以下错误:

Unexpected character ('{' (code 123)): was expecting double-quote to start field name

认为这是因为我有两个 match_phrases 在那里?

是 ES 映射,我使用的 ES API 的详细信息在这里

{"query":
  {"bool":
    {"should":
      [{"match_phrase":
         {"body":"a+phrase"}
       },
       {"match_phrase":
         {"body":"another+phrase"}
       }
      ]
    },
  {"bool":
    {"must":
      [{"range":
        {"created_at:
          {"gte":"thispage"}
        }
       }
      ]}
     }
    },"size":10000,
      "sort":"created_at"
}
4

0 回答 0