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



我有文档,有 1000 行,在弹性搜索中索引,我正在尝试使用 Kibana 搜索这些文档。它工作正常。但是,由于 Kibana 在搜索结果中返回完整的文档,用户必须滚动很多才能在文档中查看其搜索词。

如何使 Kibana 只返回搜索词周围的几行而不是完整文档?

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

那是最好的时代,这是最坏的时代,这是智慧的时代,这是愚蠢的时代,这是信仰的时代,这是怀疑的时代,这是光明的季节,这是黑暗的季节,这是

希望的春天,这是绝望的冬天。 ——查尔斯·狄更斯, 双城记

因此,如果我正在搜索单词信念,而不是返回整个段落,我只想在它之前和之后返回几个单词(对于大型文档,只有几行)。

是的,您可以使用_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"
}
}

最新更新