簡體   English   中英

ElasticsearchDSL Builder如何創建不應該查詢

[英]ElasticsearchDSL builder how to create SHOULD NOT query

使用php dsl構建器,我試圖創建“不SHOULD NOT查詢。 使用JSON查詢語法可以嵌套MUST_NOTSHOULD BOOL要創建一個。

{"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);

但這不起作用。

為了嵌套布爾查詢,您需要使用布爾查詢:)您提供的示例可以通過以下代碼片段實現:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM