[英]Search in ElasticSearch
我在彈性搜索中遇到問題。 在控制台Kibana中,我正在執行此代碼,
GET bounce_gmd/_search
{
"query": { "match_phrase": { "date_added": "2017-02-08" } },
"size": 0,
"aggs": {
"date_added": {
"terms": {
"field": "bounce_type.keyword"
}
}
}
}
我有這個結果。
{
"took": 1,
"timed_out": false,
"_shards": {
"total": 5,
"successful": 5,
"failed": 0
},
"hits": {
"total": 129812,
"max_score": 0,
"hits": []
},
........................... and many more lines.
但是當我從我的laravel項目運行時,我沒有這個結果。 我的PHP代碼看起來像這樣,
$params['index'] = $index_name;
$params['type'] = $index_name;
$params['body'] = $json;
$params['body']['query']['match_phrase']['date_added'] = $now_time;
$params['body']['size']=0;
$params['body']['aggs']['bounce_type']['terms']['field']='bounce_type.keyword';
$response = $client->search($params);
這里$ index_name ='bounce_gmd'和$ now_time =“2017-02-08”。
但答案是,
我將代碼更改為,
$json='{
"query": { "match_phrase": { "date_added": "2017-02-08" } },
"size": 0,
"aggs": {
"date_added": {
"terms": {
"field": "bounce_type.keyword"
}
}
}
}
';
$params = [
'index' => $index_name,
'type' => $index_name,
'body' => $json
];
但答案仍然是一樣的。 我不明白是什么問題。 請幫我。
為什么在0上指定大小? 它應該有一些價值。 您的聚合也可以包含可能的大小(每個aggs應該采用最大可能的選項)。 工作查詢的一些示例:
{
"from" : 0,
"size" : 10,
"query" : {
"match" : {
"body":
{
"query":"press key handler ",
"operator":"or",
"analyzer":"english"
}
}
},
"aggs" : {
"category_aggs" : { "terms" : { "field": "category", "size":25}},
"year_aggs" : { "terms" : { "field": "year", "size":30}},
"post_type_aggs" : { "terms" : { "field": "post_type", "size":2}}
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.