是否可以在elasticsearch-js中使用Highlight?

时间:2019-03-29 17:22:43

标签: node.js elasticsearch

我正在开发以下代码段:

app.get('/search', function (req, res){
  let body = {
    size: 200,
    from: 0, 
    highlight: {
      pre_tags : ["<tag1>"],
      post_tags : ["</tag1>"],
      fields: {
        "_content" : {}
      }
    }
  }
  client.search({index:'juridico',  q: req.query['q'], body: body})
  .then(results => {
    console.log(results);
    res.send(results.hits.hits);
  })
  .catch(err=>{
    console.log(err)
    res.send([]);
  });

})

但是当我在主体上传递高亮参数时,我没有得到响应。

1 个答案:

答案 0 :(得分:0)

我不得不像这样绕着身体的各个区域:

let body = {
  highlight: {
    require_field_match: false,
    fields: {
      '*': {
        pre_tags: ['<span>'],
        post_tags: ['</span>']
      }
    }
  }
}

我在这里使用'*'作为通配符来搜索所有字段。如果您要搜索具有相同前/后缀的许多字段,我相信您也可以使用它。希望这对您有用!