Я пытаюсь найти имена между периодом времени.сделать два запроса работать друг за другом
Но проблема в том, когда я пытаюсь запустить его
first-- возвращает выбранные имена значений второй - возвращает данные между этим периодом.
Теперь то, что я хочу сделать, это то, что я хочу найти имя между периодом времени.
Для объяснения его более, предположим, что у нас есть выбрать имя «Джон», и выберите дату 2/08/2015 до 27/08/2015, поэтому он должен вернуть все имена между этим периодом времени.
Но он возвращает имена Джона и ищет другие документы между этим периодом, где также должно быть указано имя «Джон» при поиске даты!
Как решить эту проблему!
$name = $request->request->get('name');
$strat_date = $request->request->get('strat_date');
$end_date = $request->request->get('end_date');
$params = array(
'index' => "myIndex",
'type' => "myType",
'body' => array(
'query' => array(
'bool' => array(
'must' => array(
// empty should clause for starters
)
)
)
)
);
// add each constraint in turn depending on whether the param is specified
if (!empty($sourceFilter)) {
$params['body']['query']['bool']['must'] = array(
'query_string' => array(
'default_field' => 'name',
'query' => implode(" ", $name)
)
);
}
if (!empty($end_date)) {
$params['body']['query']['bool']['must']['range'] = array(
'datehistory' => array(
"from" => $strat_date,
"to" => $end_date
)
);
}
// special case if none is present, just match everything
if (count($params['body']['query']['bool']['must']) == 0) {
$params['body']['query'] = array(
'match_all' => array()
);
}
$docs = $client->search($params);
Но всегда возвращает ошибку, как это ----
{ "ошибка": "SearchPhaseExecutionException [Не удалось выполнить фазу [запрос], все черепки неудачные; shardFailures { [agEfJ6ltSJmlec3gpnPg3g] [myIndex] [1]: SearchParseException [[myIndex] [1]: from [-1], size [-1]: Parse Failure [Не удалось проанализировать имя [{\ "query \": { \ "BOOL \": {\ "должен \": {\ "query_string \": {\ "default_field \": \ "имя \", \ "запрос \": \ "john.se \"}, \» диапазон \ ": {\" datehistory \ ": {\" от \ ": 1438207200 \" в \ ": 144062 6400}}}}}}]]]; вложен: QueryParsingException [[myIndex] Нет запроса для [datehistory]]; }]», "Статус": 400}
спасибо большое за ответ, но я на самом деле. пробовал это, но каждый раз, когда он возвращает мне ошибку, у меня есть обновленный мой вопрос, чтобы показать ошибку :) –
мой плохой, извините. Я обновил свой ответ, пожалуйста, посмотрите еще раз – Val
Большое вам спасибо, спасибо так много ........ действительно очень большое спасибо от всего сердца :) спасибо большое :) –