与Elasticsearch的应用程序版本比较

r6hnlfcb  于 2022-11-02  发布在  ElasticSearch
关注(0)|答案(1)|浏览(186)

我有一个包含应用程序文档的ElasticSearch索引。每个文档都有应用程序版本和一些其他字段:
版本:2.3.4,名称:Spotify音乐播放器
版本:1.2.3,名称:数独
在这种情况下,如何应用GT(大于)按版本搜索或自定义它?如果应用程序有1.2.3和1.3.2版本-使用标准查询可以很好地工作(GT 1将返回两个文档),但在1.2.3和2.1.3的情况下,ES只返回应用程序的1.2.3版本。
查询:

"bool" : {
                  "should" : [
                    {
                      "range" : {
                        "application_version" : {
                          "from" : "1.2.3",
                          "to" : null,
                          "include_lower" : false,
                          "include_upper" : true,
                          "boost" : 1.0
                        }
                      }
                    }
                  ]

应用程序版本类型(_V):保留字

um6iljoc

um6iljoc1#

我一直在研究,我认为最好的选择是将application_version的类型更改为Version field type
版本字段类型是关键字字段的特殊化,用于处理软件版本值并支持它们的特殊优先级规则。优先级是按照语义版本控制概述的规则定义的,例如,这意味着主要、次要版本和修补程序版本部分按数字排序(即“2.1.0”〈“2.4.1”〈“2.11.2”),预发布版本在发布版本之前排序(即“1.0.0-alpha”〈“1.0.0”)。

相关问题