c# - 范围运算符返回错误结果的弹性搜索结果
问题描述
范围运算符返回错误结果的弹性搜索结果
弹性搜索查询
{"query": {"bool": {"filter": [{"term": {"Id": {"value": "v1"}}},{"term": {"Segment": {"value": 1}}}, {"term": {"Attribute": {"value": "Test"}}},{"range": {"Value_Min": {"lte": 999999996}}},{"range": {"Value_Max": {"gte": 999999996}}}]}}, "sort": [{"Value_Min": {"order": "asc"}}], "size": 10}
表中的前两列是完全匹配,表中的第 3 和第 4 列是范围操作 用于范围操作()值 min 和 value max 的数据类型是浮点数。当我搜索小值时,我正在搜索大值(999999996),它返回正确的值。
搜索查询是否依赖于范围运算符的数据类型?
我期待结果中有一行,这是此处提到的表格的第二行。但是从弹性搜索头搜索时我得到了所有行
解决方案
这是由于浮点精度。
您需要将您的Value_Min
和Value_Max
字段更改为 typedouble
而不是,float
您的查询将按您期望的方式运行。
推荐阅读
- python - 应用正则表达式函数时,Pandas 内存不足错误
- python - 如何在opencv中使用阈值获取白色字母
- swift - CoreML - 设备模型训练
- ios - 在 SKSpriteNode 上叠加两个纹理
- mysql - Mysql:无法加入子查询
- node.js - 使用 express 进行反应路由正在处理页面刷新
- objective-c - AFMultipartBodyStream 不支持 scheduleInRunLoop 机制的原因是什么?
- sql - SQL 查询以获取最后 10 个带有回复的主题
- android - 捕获的图像可以保存到图像文件夹,但不能保存到应用程序文件夹
- asp.net-mvc - 在 Asp.net Mvc 的局部视图中显示模态