elasticsearch 从弹性搜索中过滤响应的最佳方法,elasticsearch,kibana,elasticsearch-7,elasticsearch,Kibana,Elasticsearch 7" /> elasticsearch 从弹性搜索中过滤响应的最佳方法,elasticsearch,kibana,elasticsearch-7,elasticsearch,Kibana,Elasticsearch 7" />

elasticsearch 从弹性搜索中过滤响应的最佳方法

elasticsearch 从弹性搜索中过滤响应的最佳方法,elasticsearch,kibana,elasticsearch-7,elasticsearch,Kibana,Elasticsearch 7,我正在努力寻找从Elastic Search查询中过滤出响应JSON的最佳方法,我知道其中两种,如下所示: 过滤路径: _资料来源: 我无法决定使用哪一个,它们将对查询、性能和其他方面产生什么影响。filter\u path在某种程度上是\u source的超集。它允许您删除响应元数据,而\u source仅限于文档的实际源 免费范例: ?filter\u path=hits.hits.\u source.id与?\u source=id类似,但前者会导致 { "hits&qu

我正在努力寻找从Elastic Search查询中过滤出响应JSON的最佳方法,我知道其中两种,如下所示:

  • 过滤路径:
  • _资料来源:

我无法决定使用哪一个,它们将对查询、性能和其他方面产生什么影响。

filter\u path
在某种程度上是
\u source
的超集。它允许您删除响应元数据,而
\u source
仅限于文档的实际源

免费范例:
?filter\u path=hits.hits.\u source.id
?\u source=id
类似,但前者会导致

{
  "hits" : {
    "hits" : [
      {
        "_source" : {
          "id" : "O1819976"
        }
      },
      ...
后者包含所有常见细节:

{
  "took" : 39,
  "timed_out" : false,
  "_shards" : {
    "total" : 1,
    "successful" : 1,
    "skipped" : 0,
    "failed" : 0
  },
  "hits" : {
    "total" : 11,
    "max_score" : null,
    "hits" : [
      {
        "_index" : "...",
        "_type" : "...",
        "_id" : "O1819976",
        "_score" : null,
        "_ignored" : [
          ...
        ],
        "_source" : {
          "id" : "O1819976"       <----
        }
      },
{
“take”:39,
“超时”:false,
“_碎片”:{
“总数”:1,
"成功":一,,
“跳过”:0,
“失败”:0
},
“点击次数”:{
“总数”:11,
“最大分数”:空,
“点击次数”:[
{
“_索引”:“…”,
“_类型”:“…”,
“_id”:“O1819976”,
“_分数”:空,
“_忽略”:[
...
],
“_来源”:{

“id:“O1819976”为了添加到@joe的答案中,第三种可能是使用而不是源代码筛选(对于除
文本
)以外的任何字段类型)。字段数据是从每个字段的文档值中检索的,而不是加载整个
\u源代码
文档并对其进行筛选。Kibana就是这样做的!第四种方法是使用