1
我只是不知道如何用我的自定義查詢與Elastica。我有一個搜索表單來查找產品,用戶可以在其中輸入名稱,選擇一個類別,一個品牌等。Elastica - 如何添加一個過濾器 - 對象術語
在我的產品映射中有一個名爲「category_id」的字段,其中包含您的類別的id可以猜測,還有另一個字段叫做「類別」,它包含一個對象。
下面是這個領域的一個例子,當我顯示所有產品不帶過濾器:
[category] => Array
(
[id] => 2
[name] => Laptop
[slug] => laptop
[created_at] => 2012-03-12T17:11:42+0000
[updated_at] => 2013-04-25T00:01:04+0000
)
我手動添加以前的「CATEGORY_ID」領域,但我沒有注意到有「類別」字段。爲了不超載我的產品映射,我想知道如何通過指定「category」字段的id來構建查詢。
這是我居然怎麼做:
$elasticaFilterCategory = new \Elastica\Filter\Term();
$elasticaFilterCategory->setTerm('category_id', $category_id]);
我檢查彈性曲線的文檔,我們可以看到setterm這個方法接受陣列():http://elastica.io/api/classes/Elastica.Filter.Term.html#method_setTerm
於是,我就沒有成功:
$elasticaFilterCategory = new \Elastica\Filter\Term();
$elasticaFilterCategory->setTerm('category', array("id" => $category_id));