【发布时间】:2019-09-08 21:53:00
【问题描述】:
问题:
我有以下问题。我可以使用 SKU 搜索我的数据。但由于有多个分销商,我想过滤 SKU 和分销商。但是我该怎么做呢,到目前为止我所拥有的是
PHP
$finder = $this->getContainer()->get('fos_elastica.finder.product.productstock');
$query = new \Elastica\Query\MultiMatch();
$query->setFields(["sku", "distributor"]);
$query->setQuery('XXXXXX');
$productStock = $finder->find($query);
dump($query);
dump($productStock);exit;
$query 转储:
Elastica\Query\MultiMatch {#900
#_params: array:2 [
"fields" => array:2 [
0 => "sku"
1 => "distributor"
]
"query" => "XXXXXXXX"
]
#_rawParams: []
}
查询结果:
array:2 [
0 => AppBundle\Entity\ProductStock {#970
-id: 16218
-sku: "XXXXXX"
-stock: 90
-price: "11.00"
-distributor: "XXX"
}
1 => AppBundle\Entity\ProductStock {#938
-id: 54086
-sku: "XXXXXX"
-stock: 25
-priceOverride: "11.00"
-distributor: "XXX"
}
]
数据库表 ProductStock
+---+-----+------+--------+-------+
|id | sku |stock | vendor | price |
+---+-----+------+--------+-------+
我的目标如果 SKU 和分销商匹配,我想要实现的是从我的 Elasticsearch 结果中获取 1 个数组。
【问题讨论】:
标签: php symfony elasticsearch elastica foselasticabundle