elasticsearch 使用 highlight 报错
public function searchAction()
{
$searchText = $this->getRequest()->getParam('query');
$result = array('success' => false, 'message' => '');
$client = new Client();
$url = 'http://127.0.0.1:9200/job_name/_search';
$searchArr = [
"from" => 0,
"size" => 5,
"query" => [
"bool" => [
"must" => [
[
"multi_match" => [
"query" => $searchText
]
]
],
"filter" => [
["term" => ["external.tenantId" => 49]]
]
]
]
,
"highlight" => [
"pre_tags" => ["<b class=\"c_color\">"],
"post_tags" => ["</b>"],
"fields" => [
"content" => (object)[],
"external.bookTitle" => (object)[],
"external.bookUploadedBy" => (object)[],
"external.bookAssignedGroups" => (object)[]
]
]
];
$r = $client->request('POST ', $url, [
"json" => $searchArr
]);
echo $r->getStatusCode(); // 200
echo $r->getReasonPhrase();
$result = $r->getBody()->getContents();
// print_r('<br><pre>');
print_r($result);
// print_r('<hr>');
// print_r('</pre><br>');
die;
// return true;
$this->_helper->json->sendJson($result);
// die;
}
报错是因为
"fields" => [
"content" => (object)[],
"external.bookTitle" => (object)[],
"external.bookUploadedBy" => (object)[],
"external.bookAssignedGroups" => (object)[]
]