Laravel 从elasticsearch中的多个嵌套级别字段进行搜索
我想从多个嵌套级别字段中搜索。像查询一样Laravel 从elasticsearch中的多个嵌套级别字段进行搜索,laravel,
elasticsearch,Laravel,
elasticsearch,我想从多个嵌套级别字段中搜索。像查询一样 select * from product where brand='brand1' and category='category1'. 在elasticsearch中,我有两个嵌套的级别映射,一个是类别映射,另一个是品牌映射 如果我只写了品牌或分类,它会返回完美的结果,但是如何在下面的查询中同时写这两个呢? $params = [ 'index' => 'my_index',
select * from product where brand='brand1' and category='category1'.
在elasticsearch中,我有两个嵌套的级别映射,一个是类别映射,另一个是品牌映射
如果我只写了品牌或分类,它会返回完美的结果,但是如何在下面的查询中同时写这两个呢?
$params = [
'index' => 'my_index',
'type' => 'product',
'body' => [
"query"=>[
"filtered"=>[
"filter"=>[
"bool"=>[
"must"=>[
"bool"=>[
"must"=>[
[
"query"=>[
"match"=>[
"brand"=>[
"query"=>"brand1",
"type"=>"phrase"
]
]
]
],
[
"query"=>[
"match"=>[
"category"=>[
"query"=>"category1",
"type"=>"phrase"
]
]
]
]
]
]
]
]
]
]
]
]
];
通过上面的查询,我得到了0个结果您可以尝试下面的查询,它将帮助您获得令人尊敬的答案: 获取/产品/用户类型/\u搜索 { “from”:0, “尺寸”:200, “查询”:{ “过滤”:{ “过滤器”:{ “布尔”:{ “必须”:{ “布尔”:{ “必须”:[ { “查询”:{ “匹配”:{ “品牌”:{ “查询”:“品牌1”, “类型”:“短语” } } } }, { “查询”:{ “匹配”:{ “类别”:{ “查询”:“类别1”, “类型”:“短语” } } } } ] } } } } } }
}您可以尝试下面的查询,它将帮助您获得令人尊敬的答案: 获取/产品/用户类型/\u搜索 { “from”:0, “尺寸”:200, “查询”:{ “过滤”:{ “过滤器”:{ “布尔”:{ “必须”:{ “布尔”:{ “必须”:[ { “查询”:{ “匹配”:{ “品牌”:{ “查询”:“品牌1”, “类型”:“短语” } } } }, { “查询”:{ “匹配”:{ “类别”:{ “查询”:“类别1”, “类型”:“短语” } } } } ] } } } } } }
}我不知道如何编写该查询?我不知道如何编写该查询?请告诉我它到底给您提供了什么输出??GuzzelConnection.php第277行中的BadRequest400Exception:以及Looongg错误,如:{“error”:“SearchPhaseExecutionException[未能执行阶段[query],所有碎片都失败了;碎片失败了…………你能和我分享一下你的查询吗?请告诉我它到底给了你什么样的输出??GuzzleConnection.php第277行中的BadRequest400Exception:和Loongg错误,如:{“error”:“SearchPhaseExecutionException[执行阶段失败[query],所有碎片都失败;碎片失败…………您能与我分享您的查询吗?