【发布时间】:2015-05-07 16:50:24
【问题描述】:
我有一个弹性搜索查询:
{
"query": {
"bool": {
"must": [
{
"match": {"title": "accountant"}
},
{
"nested": {
"path": "schools",
"query": {
"bool": {
"must": [
{ "match": { "schools.school_name": "Duke University" }}
]
}}}}
]
}}}
我正在使用 Elastica 的 php 库,我想将此原始查询转换为 Elastica。我知道我可以从 Elastica 运行原始查询,但我更喜欢使用 Elastica 类。我试过this 和this。但它们都不起作用。这是我当前代码的简化版本:
$schoolsTermFilter = new \Elastica\Filter\Term(['schools.school_name' => "Duke University"]);
$schoolsBoolFilter = new \Elastica\Filter\Bool();
$schoolsBoolFilter->addMust($schoolsTermFilter);
$nestedFilter = new \Elastica\Filter\Nested();
$nestedFilter->setPath("schools");
$nestedFilter->setFilter($schoolsBoolFilter);
$boolFilter = new \Elastica\Filter\Bool();
$boolFilter->addMust($nestedFilter);
$query->setPostFilter($boolFilter);
但是,这会返回空结果。原始查询确实返回结果,所以我知道我应该得到一些东西。有人可以帮我吗?谢谢
【问题讨论】:
标签: php elasticsearch elastica