gpt4 book ai didi

elasticsearch - Elastica - 如何添加过滤器 - 对象术语

转载 作者:行者123 更新时间:2023-12-03 00:28:04 26 4
gpt4 key购买 nike

我只是不知道如何使用 Elastica 进行自定义查询。我有一个搜索表单来查找产品,用户可以在其中输入名称、选择类别、品牌等。

在我的产品映射中,有一个名为“category_id”的字段,其中包含您可以猜到的类别的 ID,还有另一个名为“category”的字段包含一个对象。

这是我显示所有没有过滤器的产品时该字段的示例:

[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]);

我检查了 Elastica 的文档,我们可以看到 setTerm 方法接受 array() : http://elastica.io/api/classes/Elastica.Filter.Term.html#method_setTerm

所以我尝试了但没有成功:
$elasticaFilterCategory = new \Elastica\Filter\Term();
$elasticaFilterCategory->setTerm('category', array( "id" => $category_id ));

最佳答案

你可以使用这样的东西

$elasticaFilterCategory = new \Elastica\Filter\Term();
$elasticaFilterCategory->setTerm('category.id', $category_id);

关于elasticsearch - Elastica - 如何添加过滤器 - 对象术语,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21857022/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com