### semantic version type and semantic version range type example usage
PUT /semver-test
{
"mappings": {
"properties": {
"message": "text",
"version": {
"type": "semver"
},
"compatible_versions": {
"type": "semver_range"
}
}
}
}
# example app1
POST /semver-test/_doc/1
{
"app": "coolapp-ce",
"version": "1.3.2",
"compatible_versions": {
"gte" : "1.0.0",
"lte" : "1.4.0"
}
}
# example app2
POST /semver-test/_doc/1
{
"app": "coolapp-TNG",
"version": "6.1.9",
"compatible_versions": {
"gte" : "6.0.0-alpha1",
"lt" : "6.2.0"
}
}
# example app3
POST /semver-test/_doc/1
{
"app": "coolapp-final",
"version": "6.2.1",
"compatible_versions": {
"gte" : "6.2.0-alpha1",
"lt" : "6.3.0"
}
}
# semver range query
GET /semver-test/_search
{
"query": {
"range" : {
"version" : {
"gte" : "6",
"lte" : "6.2.0"
}
}
}
}
# query against semver range type
GET /semver-test/_search
{
"query": {
"term": {
"compatible_versions": {
"value": "6.2.0-beta3"
}
}
}
}
Describe the feature:
Provide dedicated types to index and query against semantic versions with a
semverand asemver_rangetype.Use of Semantic Versioning is so widespread that a dedicated
semvertype andsemver_rangetype will be useful primitives to add to Elasticsearch for varied use cases.More advanced range combinations might be interesting to implement such as how Python's
piptool allows versions to be specified:https://www.python.org/dev/peps/pep-0440/#version-specifiers