【发布时间】:2016-01-27 19:29:26
【问题描述】:
我到处搜索,但没有一个答案符合我的要求。 我的代码是这样的:
文件 1
<?php
if($year != 0)
{
$temp = strval($year);
$term =[
"range" => [
"decidedon" => [
"gte" => $temp."-01-01",
"lte" => $temp."-12-31"
]
]
];
array_push($params['body']['query']['filtered']['filter']['bool']['must'], $term);
}
文件 2
<?php
$dummy = explode(" ",$cor);
$params['body']['query']['filtered']['filter']['bool']['must'] = ['terms'=> ['court' => $dummy] ];
我在不同情况下将它们包含在我的索引页面中,如下所示
if(isset($_GET['cor'])){
$cor = $_GET['cor'];
if(strcasecmp($cor,"all")!=0){
include 'courtfilter.php';
}
}
if(isset($_GET['year'])){
$year = $_GET['year'];
if($year != 0){
include 'yearfilter.php';
}
}
当我运行查询时,它说术语和范围不能嵌套在一起。 有人可以告诉我一个更好的方法来做到这一点,而不会使我的程序复杂化或不必为这两者编写单独的过滤器吗?
(我是初学者,如果我错了或者这太琐碎了,请原谅我。)
【问题讨论】:
标签: php elasticsearch