在 ElasticSearch 搜索查询中获取文档的所有字段
Get all fields of a document in ElasticSearch search query
如何获取搜索查询匹配的文档中的所有字段? fields
上的 ES 文档说使用 *
,可以获取所有字段:http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/search-request-fields.html
有了这个文档和这个查询,我得到了结果,但没有返回任何字段:
放置文档:
curl -XPUT http://localhost:9200/idx/t/doc1 -d '{
"f": "value"
}'
搜索一下:
curl -XPOST http://localhost:9200/idx/_search?pretty -d '{
"fields": "*",
"query": { "term" : { "f" : "value" }}
}'
我也试过["*"]
,但结果是一样的,只返回默认字段(_id
和_type
)。响应的命中部分如下所示:
"hits" : {
"total" : 1,
"max_score" : 0.30685282,
"hits" : [ {
"_index" : "idx",
"_type" : "t",
"_id" : "doc1",
"_score" : 0.30685282
} ]
}
The doc 实际上是说:
"* can be used to load all stored fields from the document."
core types doc表示存储字段的默认值是'false'。
Since by default ElasticSearch stores all fields of the source document in the special _source field, this option is primarily useful when the _source field has been disabled in the type definition. Defaults to false.
如果您在搜索中没有指定 'fields',您可以查看 _source 中的内容。
因此,如果您想 return 它作为一个字段,请更改您的映射以存储该字段。
我也面临这个问题。
我发现如果我只搜索 text
或 keyword
字段,一切都可以。
希望对您有所帮助。
如何获取搜索查询匹配的文档中的所有字段? fields
上的 ES 文档说使用 *
,可以获取所有字段:http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/search-request-fields.html
有了这个文档和这个查询,我得到了结果,但没有返回任何字段:
放置文档:
curl -XPUT http://localhost:9200/idx/t/doc1 -d '{
"f": "value"
}'
搜索一下:
curl -XPOST http://localhost:9200/idx/_search?pretty -d '{
"fields": "*",
"query": { "term" : { "f" : "value" }}
}'
我也试过["*"]
,但结果是一样的,只返回默认字段(_id
和_type
)。响应的命中部分如下所示:
"hits" : {
"total" : 1,
"max_score" : 0.30685282,
"hits" : [ {
"_index" : "idx",
"_type" : "t",
"_id" : "doc1",
"_score" : 0.30685282
} ]
}
The doc 实际上是说:
"* can be used to load all stored fields from the document."
core types doc表示存储字段的默认值是'false'。
Since by default ElasticSearch stores all fields of the source document in the special _source field, this option is primarily useful when the _source field has been disabled in the type definition. Defaults to false.
如果您在搜索中没有指定 'fields',您可以查看 _source 中的内容。
因此,如果您想 return 它作为一个字段,请更改您的映射以存储该字段。
我也面临这个问题。
我发现如果我只搜索 text
或 keyword
字段,一切都可以。
希望对您有所帮助。