我一直在努力让以下JSON在PHP Arrays中运行,但我似乎没有得到任何点击。
JSON如下:
{
"query": {
"filtered": {
"query": {
"query_string": {
"query": "search"
}
}
}
},
"fields": [
"body",
"title",
"postDate",
"user",
"name"
],
"from": 0,
"size": 50,
"sort": {
"_score": {
"order": "asc"
}
},
"explain": true
}
我设法创建的PHP是这样的:
$docs = $client->search([
'index' => 'blog',
'type' => 'posts',
'body' => [
'query' => [
'filtered' => [
'query' => [
'query_string' => [
'query' => $search_query
]
]
]
],
'fields' => [
'body',
'title',
'postDate',
'user',
'name'
],
'from' => 0,
'size' => 50,
'sort' => [
'_score' => [
'order' => 'asc'
]
]
]
]);
它返回响应但没有命中,即使它应该(并且在JSON请求的情况下也是如此)
这里发生了什么?
答案 0 :(得分:0)
邮件类型根本不需要......我不知何故认为它是。我使用了一个名为ElasticHQ的工具来生成JSON,但我并没有意识到它并没有使用Posts作为一种类型。
将其更改为
$docs = $client->search([
'index' => 'blog',
'body' => [
'query' => [
'filtered' => [
'query' => [
'query_string' => [
'query' => $search_query
]
]
]
],
'fields' => [
'body',
'title',
'postDate',
'user',
'name'
],
'from' => 0,
'size' => 50,
'sort' => [
'_score' => [
'order' => 'asc'
]
]
]
]);