2
我在彈性搜索索引中創建了一個小數據集(目前只有8個項目)。PHP Elastica過濾搜索在預期時不返回結果
中的條目的結構如下
{
"value_a": "Foo",
"value_b": "Bar",
"value_c": "Baz"
}
在彈性搜索本然後如下所示(從直接查詢我的彈性搜索端點截取):
{
"_index": "foo_bar_bazindex",
"_type": "foo_bar_baz",
"_id": "4",
"_score": 1,
"_source": {
"value_a": "Foo",
"value_b": "Bar",
"value_c": "Baz"
}
}
的值A,B的組合和c是獨一無二的。
我想通過使用值a和b執行bool過濾搜索來查找「value_c」的值。
在我的代碼我一直想這個如下:
$filter = new \Elastica\Filter\Bool();
$query = new \Elastica\Query();
$aFilter = new \Elastica\Filter\Term(['value_a' => "Foo"]);
$bFilter = new \Elastica\Filter\Term(['value_b' => "Bar"]);
$filter->addMust($aFilter);
$filter->addMust($bFilter);
$query->setFilter($filter);
$results = $this->bookingPeriodIndex->search($query)->getResults();
var_dump($results);
然而,這不返回任何結果(VAR轉儲輸出空數組) - 通過直接發佈此查詢到服務器也可手動嘗試此查詢:
{
"query": {
"filtered": {
"filter": {
"bool": {
"must": [
{
"term": {
"value_a": "Foo"
}
},
{
"term": {
"value_b": "Bar"
}
}
]
}
}
}
}
}
這也產生了沒有結果 - 但是我希望它返回一個結果,因爲我有如下條目:
{
"value_a": "Foo",
"value_b": "Bar",
"value_c": "Baz"
}
我錯過了什麼嗎?這可能是由於小數據集?我們在代碼庫中的其他地方使用相同的Bool Filter Elastica查詢,並且這些工作如預期的那樣工作,但是我似乎無法從此索引中獲取任何數據。
任何幫助,將不勝感激。