In Elastic 5.0, I understand that the index
property no longer supports the value not_analyzed
.
So I'm now using the following index template to map "incoming" strings to the new-for-5.0 keyword
type:
{
"template": "fuw-*",
"mappings": {
"_default_": {
"dynamic_templates": [{
"string_fields": {
"match": "*",
"match_mapping_type": "string",
"mapping": {
"type": "keyword"
}
}
}]
}
}
}
(Yes, I'm currently mapping all incoming string fields to the keyword
type. Later, I might selectively map some fields to keyword
and others to text
.)
This seems to be working: for example, after loading data into that index pattern, Kibana doesn't show separate "keyword" fields in that index pattern, and I can successfully search on the "original" (unanalyzed) values.
But I'm left with a lingering doubt: in Kibana / Management / Indices / Index Patterns, the type
column still shows fields in that index pattern as string
. Although, reassuringly, the analyzed
column is empty/clear.
At first, I expected to see these fields as type keyword
.
But then, after more research, I'm wondering whether this is working as designed.
From the description at the top of that Kibana page:
This page lists every field in the fuw-* index and the field's associated core type as recorded by Elasticsearch.
From the Elastic documentation topic "Field datatypes":
Core datatypes
string
text and keyword
Based on that documentation, perhaps Kibana is correctly reporting string
as the core type, where text
and keyword
are types that "belong" to that core type?
What's the situation here? Working as designed; should display keyword
; or work-in-progress?