Return 在 Elastic Search 中匹配了哪个字段
Return which field got matched in Elastic Search
我正在尝试找出在返回文档的特定搜索中实际匹配的内容。
例如。我有一个 table 索引,其中有名为 table_name 和 column_name 的字段...
我的搜索查询正在查找这两个字段,现在如果我触发搜索查询并且其中任何一个匹配,但我想知道匹配的是什么..无论是 column_name 还是 table_name.
我知道解释 API 但这需要我调用另一个 API...
您不需要调用解释 API。搜索API支持explain
标志
GET Whosebug/_search?explain=true
这将 return _explanation
部分和 _source
部分。
更新
另一个解决方案是使用 highlight。我以前用过它,用于手动评估查询。这是获得有关匹配内容的一些反馈的简单方法
GET Whosebug/_search
{
"query": {
"match": {
"FIELD": "TEXT"
}
},
"highlight": {
"fields": {
"*": {}
}
}
}
当然你也可以设置解释标志
我正在尝试找出在返回文档的特定搜索中实际匹配的内容。
例如。我有一个 table 索引,其中有名为 table_name 和 column_name 的字段... 我的搜索查询正在查找这两个字段,现在如果我触发搜索查询并且其中任何一个匹配,但我想知道匹配的是什么..无论是 column_name 还是 table_name.
我知道解释 API 但这需要我调用另一个 API...
您不需要调用解释 API。搜索API支持explain
标志
GET Whosebug/_search?explain=true
这将 return _explanation
部分和 _source
部分。
更新
另一个解决方案是使用 highlight。我以前用过它,用于手动评估查询。这是获得有关匹配内容的一些反馈的简单方法
GET Whosebug/_search
{
"query": {
"match": {
"FIELD": "TEXT"
}
},
"highlight": {
"fields": {
"*": {}
}
}
}
当然你也可以设置解释标志