0

当我做这样的查询时:

curl 'http://localhost:9200/xenforo/_search?q=message:test'

我得到以下结果:

{
    "took": 3,
    "timed_out": false,
    "_shards": {
        "total": 5,
        "successful": 5,
        "failed": 0
    },
    "hits": {
        "total": 1,
        "max_score": 12.816886,
        "hits": [
            {
                "_index": "xenforo",
                "_type": "post",
                "_id": "1778114",
                "_score": 12.816886
            }
        ]
    }
}

显示了重要的 _id,但我将如何获得更多信息,如日期、用户和节点信息。

这是我的一些映射信息,我认为重要的部分显示:

curl -X GET 'http://localhost:9200/xenforo/_mapping?pretty=true'
{
  "xenforo113" : {
    "post" : {
      "_source" : {
        "enabled" : false
      },
      "properties" : {
        "date" : {
          "type" : "long",
          "store" : "yes"
        },
        "discussion_id" : {
          "type" : "long",
          "store" : "yes"
        },
        "message" : {
          "type" : "string"
        },
        "node" : {
          "type" : "long"
        },
        "thread" : {
          "type" : "long"
        },
        "title" : {
          "type" : "string"
        },
        "user" : {
          "type" : "long",
          "store" : "yes"
        }
      }
    },

我假设我需要进行 DSL 查询,但我不知道哪个命令会在结果中显示我想要的其他信息。

4

1 回答 1

1

由于您已禁用 _source,因此您必须要求提供明确的字段:

curl 'http://localhost:9200/xenforo/_search -d '{
    "fields" : ["user", "date", "node"],
    "query" : {
        "match" : { "message" : "test" }
    }
}'

请参阅文档

于 2013-04-13T17:46:04.327 回答