嗨,我做了一个简单的高亮查询
select?fl=name&hl.fl=name&hl=on&indent=on&q=cubo&wt=json
问题在于结果。我不想在json响应中使用id
"highlighting":{
"fbd29a94-b53d-4de0-8e74-046bf1f921cd":{
"name":["<em>Cubo</em> de Roda Dianteiro para Ford"]},
"f6ddf7a0-352e-4789-8e29-ca927274c5cc":{
"name":["<em>Cubo</em> de Roda Traseiro para Jac Motors"]},
"1901086a-1867-4c8a-a2b7-ce7578e352c3":{
"name":["<em>Cubo</em> de Roda Dianteiro para Nissan"]}}
我想要这个......可能吗?我是怎么做到的?
"highlighting":[
{"name":["<em>Cubo</em> de Roda Dianteiro para Ford"]},
{"name":["<em>Cubo</em> de Roda Traseiro para Jac Motors"]},
{"name":["<em>Cubo</em> de Roda Dianteiro para Nissan"]}]
答案 0 :(得分:0)
我的猜测是它不可能,因为结果集中可能有文档没有执行突出显示(即它不匹配可突出显示的术语,但它仍然匹配文档)。
如果真的需要这个,你可以在中间件中做到这一点(因为你已经标记了PHP,我将把它用于伪代码):
// keep highlighted entries in sequence
$highlights = [];
foreach ($hits as $doc) {
// if we have a highlighting element for this document
if (!empty($result['highlighting'][$doc['id']])) {
// keep the highlighted text
$highlights[] = $result['highlighting'][$doc['id']];
} else {
// .. and if we don't, add a null element so indices match
$highlights[] = null;
}
}