以下代码是laravel+elastisearch-php(https://github.com/elastic/elasticsearch-php)实现的,但是不能返回高亮内容,网上看了https://segmentfault.com/a/1190000003010186 下面有一个例子提到高亮,但mmanos的不太会用,比如如何找指定索引下指定类型的某个查询?
不乱以上哪种方式,哪位朋友能指点一二,感谢!!!
$params=[
'index' => 'n_index',
'type' => 'n_type',
'body' => [
'query' => [
'match' => ['ntitle' => '要查询的词']
],
'highlight'=>[
'pre_tags'=>['<tag1>', '<tag2>'],
'post_tags'=>['</tag1>', '</tag2>'],
'fields'=>[
'ntitle'=>[]
]
]
]
];
$response = $this->client->search($params);
echo "<pre>";
var_dump($response);
echo "</pre>";
以上代码可以查出以下结果
array(4) {
["took"]=>
int(6)
["timed_out"]=>
bool(false)
["_shards"]=>
array(3) {
["total"]=>
int(5)
["successful"]=>
int(5)
["failed"]=>
int(0)
}
["hits"]=>
array(3) {
["total"]=>
int(3)
["max_score"]=>
float(1.8223838)
["hits"]=>
array(3) {
[0]=>
array(5) {
["_index"]=>
string(7) "n_index"
["_type"]=>
string(6) "n_type"
["_id"]=>
string(1) "6"
["_score"]=>
float(1.8223838)
["_source"]=>
array(1) {
["ntitle"]=>
string(35) "ntitle内容2"
}
}
[1]=>
array(5) {
["_index"]=>
string(7) "n_index"
["_type"]=>
string(6) "n_type"
["_id"]=>
string(1) "7"
["_score"]=>
float(1.2087858)
["_source"]=>
array(1) {
["ntitle"]=>
string(35) "ntitle内容1"
}
}
[2]=>
array(5) {
["_index"]=>
string(7) "n_index"
["_type"]=>
string(6) "n_type"
["_id"]=>
string(1) "5"
["_score"]=>
float(0.23033649)
["_source"]=>
array(1) {
["ntitle"]=>
string(35) "ntitle内容3"
}
}
}
}
}
没有返回高亮部分,
你得查询语句中 “要查询的词”
为什么下面的结果里
ntitle是“内容2”等