0
我有這段代碼執行查詢。 我使用的是官方的php彈性搜索庫。 https://github.com/elastic/elasticsearch-php彈性搜索PHP客戶端日期範圍查詢
字段 「Tijdsperiode」 是格式爲:(2016年1月30日00:00:00)(YY-MM-DD HH:MM:SS)
$params = [
'index' => 'veenendaal2',
'type' => 'passanten2',
'body' => [
'query' => [
'match_all' => [],
'filter' => [
'range' => [
'Tijdsperiode' => [
'gte' => '2016-01-30 01:00:00',
'lte' => '2016-01-30 08:00:00'
]
]
]
],
],
];
$response = $client->search($params);
var_dump($response);
我只是想知道在兩個日期之間得到結果需要什麼樣的格式。
當我這樣做:
$params = [
'index' => 'veenendaal2',
'type' => 'passanten2',
'body' => [
'query' => [
'match_all' => [],
],
],
];
它的正常工作,但我需要2個日期之間的結果!
我也試過,但沒有結果:
$json = '{
"query": {
"bool": {
"must": [
{
"range": {
"Tijdsperiode": {
"gt": "2016-01-30 07:00:00",
"lt": "2016-01-30 09:00:00"
}
}
}
]
}
}
}';
$client = ckan_graphmapper_client();
$params = [
'index' => 'veenendaal2',
'type' => 'passanten2',
'body' => $json
];
$response = $client->search($params);
我也映射試了一下:
$params = [
'index' => 'veenendaal2',
'type' => 'passanten2',
'size' => $size,
'body' => [
'query' => [
"match_all" => [],
'filter' => [
'range' => [
'Tijdsperiode' => [
'gte' => '2016-01-30 01:00:00',
'lte' => '2016-01-30 08:00:00'
]
]
]
],
'mappings' => [
'_default_' => [
'properties' => [
'Tijdsperiode' => [
'type' => 'date',
'format' => 'yyyy-MM-dd HH:mm:ss'
]
]
]
]
]
];
如何做正確的語法2日之間進行選擇?兩種字符串格式(2016-01-30 00:00:00)(YY-MM-DD HH:MM:SS)
謝謝!
您在映射設置該日期格式? –
嗨Veerendra,我添加了我的類型,但它仍然不工作..任何想法? –
'datetime'=> [ ]'type'=>'date', 'format'=>'yyyy-MM-dd HH:mm:ss', ] –