elasticsearch中的_meta字段不能正常工作

时间:2017-06-07 06:27:14

标签: elasticsearch elasticsearch-py

这是我的映射:

"mappings" : {
        "mytype" : {
            "_meta" : {
                "abs_parent_id" : {"type" : "integer"}
            },
            "properties" : {
                "title" : {"type" : "text"},
                "body" : {"type" : "text"},
                "tagnames" : {"type" : "text"},
                "nodetype" : {"type" : "text"},
                "author_id" : {"type" : "integer"},
                "author_name" : {"type" : "text"},
            }
        }
 }

我希望这是我做http://localhost:9200/myindex/mytype/_search?pretty时的回复:

"hits" : [
  {
    "_index" : "myindex",
    "_type" : "mytype",
    "_id" : "1",
    "_score" : 1.0,
    "_meta" : {
        "abs_parent_id" : null
      },
    "_source" : {
      "body" : "<p>Some statement</p>",
      "tagnames" : "tag",
      "title" : "question",
      "author_name" : "author",
      "node_type" : "question",
      "author_id" : 1000
    }
  },

但我把它作为回应:

"hits" : [
  {
    "_index" : "myindex",
    "_type" : "mytype",
    "_id" : "1",
    "_score" : 1.0,
    "_source" : {
      "_meta" : {
        "abs_parent_id" : null
      },
      "body" : "<p>Some statement</p>",
      "tagnames" : "tag",
      "title" : "question",
      "author_name" : "author",
      "node_type" : "question",
      "author_id" : 1000
    }
  },

我需要在_source之外有_meta字段,以便我可以在我的查询上禁用_source,这将节省内存。有人可以提出解决方案吗?

Aren所有以下划线开头的字段都应该在_source之外?

旁注:我不认为这是相关的,但是我用elasticsearch-py来做这一切。

1 个答案:

答案 0 :(得分:1)

这不是元字段的用途。 mapping中配置的元字段不是搜索响应的一部分,它们只包含索引元数据中的附加信息,就是它 - 与元字段的查询(甚至是数据)没有任何交互

此外,您对带下划线的字段的假设是错误的。它们被视为常规字段。