Day27 深入解析Elasticsearch Query DSL Range query

Hello大家,
真的把今年的国定假日都过完了...
有点哀伤!
下次的连续假期是跨年了,
让我们一起哀伤两个半月来迎接下个连假吧!

之前有提到Range query的使用方法,
能够进行的内容包刮容量大小、IP、日期等,
其中能设定的内容有大於、小於等等:
gt:大於
gte:大於等於
lt:小於
lte:小於等於

关於日期,
有些时间的记法因为时区的原因跟我们所在时区不一致时,
我们就要利用time_zone进行调整,
写法就会是"time_zone": "+[时间]"

"time_zone": "+08:00"

另外相关性的调整又来拉~
跟前面说的fuzzy的概念有点相似,
我们可以藉由设定boost来调整查询结果的相关性,
boost预设值为1.0,
0~1.0之间的分数会显示与查询内容较远(不相关)的内容
大於1.0的话则会增加其相关性。
Elasticsearch针对每一个doc都会在进行搜索时给予一个匹配度的分数,
设定boost则是用来决定是否要放宽这个条件,
要不要让匹配度较低的结果也显示出来。

日期的设定方式比较特别,
如果我们要查询今天以前的范围,
所以我们就要找比大於等於(今天-1)的日期
并且小於等於今天
所以说下法就是
"gte":"now-1d/d,
"lt":"now/d"
那如果是一个小时内的话也是相同的概念
"gte":"now-1h/h,
"lt":"now/h"
完整的写法如下

{
  "query": {
    "range": {
      "[Field]": {
        "[条件1]": "[内容1]",
        "[条件2]": "[内容1]"
      }
    }
  }
}
{
  "query": {
    "range": {
      "date": {
        "gte":"now-1h/h,
        "lt":"now/h"
      }
    }
  }
}

如果要加入时区的话

{
  "query": {
    "range": {
      "date": {
        "time_zone": "+01:00",        
        "gte":"now-1h/h,
        "lt":"now/h"                  
      }
    }
  }
}

<<:  【Day27】建立一个 QA Bot

>>:  react 大冒险-render props-day 23

网路的小技巧-2

//兴趣记录一下~希望退休以後可以回味,各位别嫌弃,感谢各位!! //// //VLAN重要性,实作...

30天学会 Python: Day 4-《资料Collection》

容器(Collection) 可以同时储存多个资料的资料类型,可以达到用一个变数名称储存多个数值的功...

Day 06:我们未来再相见

前言一 因为一些原因,今天应该是我铁人赛的完赛日。完成了 20%,剩下的 80%,就留给大家去阅读更...

Day24 AR应用太空篇之总不可能要太空人当爹又当妈,学习当太空人又要拥有很多的维修知识

在前面,我们了解了AR和其他实境的不同、它的一些硬体结构、装置演化的历史以及目前有哪些装置。但好像都...

【Day 29】Matplotlib 介绍

前言 Matplotlib 是一个把数据可视化的套件,他可以和 NumPy 一起连用,与 Matla...