ElasticsearchDSL构建器如何创建不应查询



使用PHP DSL构建器,我正在尝试创建SHOULD NOT查询。使用JSON查询语法,您可以在SHOULD Bool中嵌套MUST_NOT来创建一个。

示例

{"bool": {"should": { "bool": {"must_not": {"match": {"thing": "thingy"}}}}}}

阅读浏览Ongr文档,尚不清楚如何实现自5.0更新版本以来的结果。我尝试了以下内容:

$search = new Search();
$query = new MatchQuery('thing', 'thingy');
$search->addQuery($query, BoolQuery::MUST_NOT);
$search->addPostFilter(BoolQuery::SHOULD);

但这不起作用。

为了嵌套布尔查询,您需要使用bool查询:)可以使用此代码段来实现您提供的示例:

$search = new Search();
$outerBoolQuery = new BoolQuery();
$innerBoolQuery = new BoolQuery();
$innerBoolQuery->add(new MatchQuery('thing', 'thingy'), BoolQuery::MUST_NOT);
$outerBoolQuery->add($innerBoolQuery, BoolQuery::SHOULD);

相关内容

  • 没有找到相关文章

最新更新