- 使用 Spring Initializr 创建 Spring Boot 应用程序
- 在Spring Boot中配置Cassandra
- 在 Spring Boot 上配置 Tomcat 连接池
- 将Camel消息路由到嵌入WildFly的Artemis上
最近开始玩 elasticsearch,刚玩到 flattened 时,发现它文档里面有这么一句话 :
Only basic queries are allowed, with no support for numeric range queries or highlighting.
此类型只提供基本查询,不提供numeric的range查询以及高亮。
可是,当我往下翻阅文档的时候,发现它支持的类型中出现了range?Supported Operations
这是怎么回事呢?好奇使我成长~
继续查阅文档,不经意间我们看到了这么一句话。
it treats all values as keywords。
flattened 会将所有的值都以 keywords 进行存储 (所以数字的存储也会是keyword,时间类型也并不会自动转成timestamp进行存储)
那么博主猜测,是不是因为它将所有的值都转成了keyword,所以才不支持 numeric range的?毕竟keyword时可以进行对比的,但是它是按照 ascii 码逐一进行对比,那么数字转成 keyword后,确实对比的值会不正确?ascii码表
那么我们来验证这一猜测。
首先创建一个带有 flattened 的mapping
PUT flattened_range
{
"mappings": {
"properties": {
"title": {
"type": "text"
},
"labels": {
"type": "flattened"
}
}
}
}
再添加几条数据!!
POST flattened_range/_doc/1
{
"title": "flattened range 1.",
"labels": {
"number": 20,
"time": "2022-02-12 11:35:09"
}
}
POST flattened_range/_doc/2
{
"title": "flattened range 2.",
"labels": {
"number": 80,
"time": "2022-02-12 11:36:09"
}
}
POST flattened_range/_doc/3
{
"title": "flattened range 3.",
"labels": {
"number": 100,
"time": "2022-02-12 11:37:09"
}
}
POST flattened_range/_doc/4
{
"title": "flattened range 4.",
"labels": {
"number": 130,
"time": "2022-02-12 11:38:09"
}
}
那么,接下来我们进行数据查询:
GET flattened_range/_search
{
"query": {
"bool": {
"filter": [
{
"range": {
"labels.number": {
"gte": 10,
"lt": 90
}
}
}
]
}
}
}
查询结果是 20 80 100 130 都被查询出来了,这是因为字符串中的ascii码逐一对比,这些结果的首字母都大于等于1,小于等于9。
再查一次:
GET flattened_range/_search
{
"query": {
"bool": {
"filter": [
{
"range": {
"labels.number": {
"gte": 10,
"lt": 15
}
}
}
]
}
}
}
查询结果是 100 130 符合猜测预期!!!
flattend 的 range 查询是针对keyword进行查询,逐个对比ascii码进行过滤,在数字转成 keyword的情况下,结果会不准确。
我以默认数字 js 格式存储数字和货币格式。我允许用户根据他们的区域设置拥有自己的格式。我正在尝试弄清楚如何将他们的自定义格式转换回默认格式,以便一致地存储它,以防他们更改语言环境。 例如设置电流:
我以默认数字 js 格式存储数字和货币格式。我允许用户根据他们的区域设置拥有自己的格式。我正在尝试弄清楚如何将他们的自定义格式转换回默认格式,以便一致地存储它,以防他们更改语言环境。 例如设置电流:
我正在为 as.POSIXct.numeric 苦苦挣扎。以下代码有效: dates <- structure(c(1649285787, 1651134684), class = c("POSIXc
我正在使用 Azavea Numeric Scala 库进行通用数学运算。但是,我无法将它们与 Scala Collections API 一起使用,因为它们需要 scala Numeric,并且
我在仔细阅读文档时注意到,Numeric 类有一个方法 arg,其解释为“如果值为正,则返回 0,否则返回 pi。直接在这个上面的docs 是一个名为 angle 的方法,其解释相同。 我不明白这个方
我试图总结两列并获得错误:二进制运算符的非数字参数。但是,这两列都是数字。因此,我不明白为什么会收到此错误消息。谢谢你的帮助? data_all% mutate(total='5min'+'10min
我正在尝试创建六个站点上物种丰富度的热图。 我有一个站点与物种的矩阵,其中有数字丰度数据。 但是,当我运行代码时,R返回一个错误,指出我的矩阵是非数字的。 谁能想到这个?我感到难过。 导出的数据框链接
我正在使用一个返回 float 的java函数 private float getEventScaledX(float eventX, float resX) { return (eventX
我有一个函数接收 SearchCriteria 的集合对象:列名或键、运算符( = ### && :letter_date <= ### 我在两个日期之间查找。我不能两次使用相同的参数名称,因此我在遍
我正在尝试将值插入到表中,但我不断收到错误消息 ORA-01858: a non-numeric character was found where a numeric was expected 这是
sort 提供两种数字排序。这是来自手册页: -g, --general-numeric-sort compare according to general numerica
我遇到了一个奇怪的问题,将日期列与 SYSDATE 进行比较会产生以下错误: 01858. 00000 - "a non-numeric character was found where a nu
这是表格 CREATE TABLE Employee (EmpID number(5) primary key, SIN Number(9) Not null, Las
在 bash 中按 alt + numeric 会得到 (arg [numeric]) 那是什么? (这类问题更适合问人,而不是试图“猜测”正确的术语以通过互联网搜索文档)。 最佳答案 您要搜索的字词
当我执行准备好的语句时,我得到了 ORA-01858:在需要数字的地方发现了一个非数字字符。当我搜索一些论坛时,他们说这是因为日期数据类型。我准备好的声明是 insert into OPRS_ZON
我正在使用 Elasticsearch Java API 创建索引并编写搜索查询。 索引是在各种字段上创建的。字段之一是创建索引的数字(整数)。 现在我们得到的输入是字符串的形式。我们必须在所有字段中
我想重新映射启用 Numlock 的数字小键盘,使其表现得像关闭 Numlock 的数字小键盘,包括能够在按住 Shift/Ctrl 的情况下扩展选择范围。 我遇到的问题如下 Numpad8::Up
所以我有一个训练集,其中一个属性的域如下: A = {Type1, Type2, Type3, ... ,Type5} 如果域保持这种形式,我就无法应用线性回归,因为数学假设不可能成立,例如: H =
为什么我会通过 Java 应用程序执行此查询从 Oracle 收到上述 SQL 错误? SELECT * FROM TestSchema.TestTable WHERE userid = :userI
我在 JSP 中添加了以下代码,并在将实体保存到数据库时出现一些异常。 $('.validateWeight').click(function(event) { var id = event.tar
我是一名优秀的程序员,十分优秀!