我对文章索引有一些全文搜索查询:
"query": {
"multi_match": {
"query": article,
"fields": [ "text" ],
"minimum_should_match": "75%"
}
}
我想知道是否可以更改它以仅返回部分文本,而不返回整个匹配的文本。例如,假设我搜索“棕狐”。除了返回整篇文章,我只想返回围绕“棕狐”的任何匹配的几句话,因此结果可能是“ ..据说任何棕狐都可以越过栅栏..”,而忽略换行符。
在ES中有可能吗?
答案 0 :(得分:0)
正如@ Adam-t所述,在EC中突出显示是此答案的关键。为了将来参考,我添加了我的搜索查询,以便能够获得所要求的答案。我发布此答案的原因是,我也遇到了同样的问题,并且花了我一段时间才找到合适的解决方案。
{
"query":{
"match_phrase":{
"text":"investors"
}
},
"highlight":{
"fragment_size":100,
"fields":{
"text":{}
}
}
}
以上搜索查询将通过大文本搜索“投资者”一词,并返回如下所示的响应,
"highlight" : {
"content" : [
"*stocks closed at a near three-week high on Wednesday, led by blue-chips, but foreign <em>investors</em>",
"The dollar currency ended weaker. ** Local <em>investors</em> picked up select shares, with one of the two presidential"
]
}
fragment_size突出显示周围的文本,默认值为100