【发布时间】:2015-02-22 03:03:00
【问题描述】:
我正在为我的 Laravel 应用程序使用 ES。
我想做的是搜索过滤。
我在标题字段上进行全文搜索,然后检查价格是否在 0 - 9999 之间,并且活动设置为 1。
但是这两个查询似乎都适用于我的测试数据。但是它们之间有什么区别呢? “查询”的顺序有什么不同吗?
忽略语法,只看查询结构。
第一次查询
'filtered' => [
'query' => [
'match' => ['title' => Input::get('query')]
],
'filter'=> [
'bool' => [
'must' => [
['term' => [ 'active' => 1] ],
[ 'range' => [
'price' => [
'gte' => 1,
'lte' => 99999,
]
]
]
]
]
],
],
第二次查询
'filtered' => [
'filter' => [
'bool' => [
'must' => [
['term' => [ 'status' => 1] ],
[
'range' => [
'price' => [
'gte' => 1,
'lte' => 99999,
]
]
]
]
]
],
'query' => [
'match' => [
'title' => Input::get('query', '')
]
]
]
提前致谢。
【问题讨论】:
标签: php laravel elasticsearch