Kibana:如何仅显示搜索词周围的有限行/单词,而不显示完整文档?

时间:2019-06-22 11:58:55

标签: elasticsearch kibana-6

我有1000条线的文档,它们在弹性搜索中建立了索引,我正尝试使用Kibana搜索这些文档。一切正常。但是随着Kibana在搜索结果中返回完整文档,用户必须滚动很多才能在文档中看到他们的搜索词。

如何使Kibana仅仅返回围绕搜索词的几行而不是整个文档?

例如,如果文档中的可搜索文本为

  

那是最美好的时光,那是最糟糕的时光,那是智慧的时代,那是愚昧的时代,那是信仰的时代,那是怀疑的时代,那是光明,那是黑暗的季节,那是希望的春天,那是绝望的冬天。 -查尔斯·狄更斯,《两个城市的故事》

因此,如果我要搜索单词信仰,而不是返回完整的段落,我只想在其前后返回几个单词(对于大型文档,只需几行)。

1 个答案:

答案 0 :(得分:1)

是的,您可以使用_source从搜索的文档中检索所需的字段。这是一个例子

我在movies索引中有此文件

  {
    "_index" : "movies",
    "_type" : "movie",
    "_id" : "58559",
    "_score" : 1.0,
    "_source" : {
      "id" : "58559",
      "title" : "Dark Knight, The",
      "year" : 2008,
      "genre" : [
        "Action",
        "Crime",
        "Drama",
        "IMAX"
      ]
    }
  }

当我搜索此文档时,我只需要拉标题,这就是我的操作方法。

GET /movies/_search?pretty
 {
   "query":{
      "match":{
         "year": "2008"
       }
   },
      "_source":[
          "title"
      ]

}

我搜索了year,结果文档仅显示了我想要的title。这是上述查询的响应

{
    "_index" : "movies",
    "_type" : "movie",
    "_id" : "58559",
    "_score" : 1.0,
    "_source" : {
      "title" : "Dark Knight, The"
    }
  }