我有1000条线的文档,它们在弹性搜索中建立了索引,我正尝试使用Kibana搜索这些文档。一切正常。但是随着Kibana在搜索结果中返回完整文档,用户必须滚动很多才能在文档中看到他们的搜索词。
如何使Kibana仅仅返回围绕搜索词的几行而不是整个文档?
例如,如果文档中的可搜索文本为
那是最美好的时光,那是最糟糕的时光,那是智慧的时代,那是愚昧的时代,那是信仰的时代,那是怀疑的时代,那是光明,那是黑暗的季节,那是希望的春天,那是绝望的冬天。 -查尔斯·狄更斯,《两个城市的故事》
因此,如果我要搜索单词信仰,而不是返回完整的段落,我只想在其前后返回几个单词(对于大型文档,只需几行)。
答案 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"
}
}