Sam*_*Sam 14
说明:
不要认为有任何办法可以做到这一点.但由于索引中的所有内容都会自动在映射中抛出,因此我们知道映射至少包含索引中的每个字段.从那里,您可以循环遍历映射中的每个字段,并对具有该字段的索引中的结果数进行计数.如果计数大于0,则该字段存在; 如果计数为0,则该字段不是索引的一部分.由于我们知道索引中的每个字段都将存在于您的映射中,因此应涵盖所有可能性.
一些示例API调用:
# Get the mapping
$ curl -XGET 'http://localhost:9200/index/type/_mapping?pretty'
# Count a field
$ curl -XGET 'http://localhost:9200/index/type/_count' -d '
{
"query" : {
"constant_score" : {
"filter" : {
"exists" : { "field" : "name_from_mapping" }
}
}
}
}'
Run Code Online (Sandbox Code Playgroud)
文档:
从1.3开始,您有_field_names元字段.
{
"aggs": {
"Field names": {
"terms": {
"field": "_field_names",
"size": 10
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
在 current(5.2) 版本中,您可以使用映射 API 获取所有字段名称:
GET index_name/_mapping?pretty
Run Code Online (Sandbox Code Playgroud)
更多信息请参考官方文档。
小智 6
您可以使用 SQL 查询获取字段名称列表
例子
GET _sql?format=txt
{
"query": "DESC index_name"
}
Run Code Online (Sandbox Code Playgroud)
输出
column | type | mapping
------------------------------------------------------+---------------+---------------
description |VARCHAR |text
description.autosuggest |VARCHAR |text
description.keyword |VARCHAR |keyword
address |STRUCT |object
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
25352 次 |
| 最近记录: |