c# - Elasticsearch 结果,范围运算符返回错误结果

标签 c# elasticsearch

flex 搜索结果,范围运算符返回错误结果
enter image description here
ElasticSerchQuery

{"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}
表中的前两列是完全匹配,表中的第三和第四列是范围运算
用于范围operation()的min和max值的数据类型为float。
我正在搜索大值(999999996),当我搜索小值时,它将返回正确的值。
搜索查询是否取决于范围运算符的数据类型?
我期望结果中有一行,这是这里提到的表的第二行。
但是从 flex 搜索头搜索时我得到了所有行

最佳答案

这是由于浮点精度。
您需要将Value_MinValue_Max字段更改为double而不是float类型,并且查询将按您期望的方式进行。

关于c# - Elasticsearch 结果,范围运算符返回错误结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63170486/

相关文章:

c# - 未针对 CompositeCollection 和嵌套 CollectionViewSource.Source 绑定(bind)正确引发依赖项 PropertyChangedHandler

c# - 通过覆盖链的 IEnumerable 列表

c# - 在 datagridview 中显示 .exe.config 文件并操作设置

python - elasticsearch.exceptions.SSLError : ConnectionError hostname doesn't match

elasticsearch - 用等效词查询Elasticsearch

c# - 重启时重置分数

c# - 可以在文件列表上运行的 C/C++ 和 C# 语法检查器

elasticsearch - 如何获取Elasticsearch集群中当前打开的分片数量?

amazon-web-services - 如何将大量停用词上传到 AWS Elasticsearch

java - 使用 elasticsearch-hadoop map-reduce 将 json 从 HDFS 写入 Elasticsearch