当前位置: 首页 > wzjs >正文

做网站模板的软件企业培训内容

做网站模板的软件,企业培训内容,服务器做视频网站,wordpress评论数据表es的range失效的解决方法 问题描述 当我们es使用keyword类型存储数字时,当我们使用range时我们发现range失效的问题,例如以下的用例: 我们创建一个test1的索引test1: 使用_bulk进行批量导入数据: 进行查询我们发现我…

es的range失效的解决方法

问题描述

当我们es使用keyword类型存储数字时,当我们使用range时我们发现range失效的问题,例如以下的用例:

我们创建一个test1的索引test1:

image-20250423190453040

使用_bulk进行批量导入数据:

image-20250423190504390

进行查询我们发现我们要使用range进行0-5000的范围查询,但发现10000出现了

image-20250423190558050

这是为什么呢?

原因解释:因为es的keyword的字符串比较是按字典序进行的(“100” < “20” 因为 ‘1’ < ‘2’),同理5000>10000是因为5>1

如何解决呢?

正确解决方案

方案1:重新映射字段为数值类型(推荐)

PUT /products/_mapping
{"properties": {"price": {"type": "float"  // 或 "integer"}}
}

然后使用数值类型的 range 查询。

方案2:使用脚本转换字符串为数值(性能较差)

GET /products/_search
{"query": {"script": {"script": {"source": "Double.parseDouble(doc['price'].value) >= params.min && Double.parseDouble(doc['price'].value) <= params.max","params": {"min": 100,"max": 500}}}}
}

方案3:使用标准化格式存储文本价格(次优方案)

如果必须保持文本类型,确保所有价格:

  • 统一小数位数(如都保留2位:100.00)
    化格式存储文本价格(次优方案)

如果必须保持文本类型,确保所有价格:

  • 统一小数位数(如都保留2位:100.00)
  • 统一数字
http://www.dtcms.com/wzjs/320562.html

相关文章:

  • 有个别网站打开特别慢北京疫情消息1小时前
  • 用什么软件做动漫视频网站网络优化工具
  • 网站做程序百度移动开放平台
  • 高端网站建设推广百度云盘网页登录入口
  • 好听有创意的广告公司名字谷歌seo关键词排名优化
  • 计算机网络技专业术网站开发怎么建立网站
  • 狮山网站建设公司高级seo是什么职位
  • 金泉网做网站电话深圳网络推广外包
  • 武汉企业网站制作巨量算数官方入口
  • 外贸网站如何建设百度网盘资源搜索引擎搜索
  • 第一成品网站商品标题优化
  • 凡客诚品线下店网站关键词排名优化
  • 北京建站模板制作石家庄seo网站排名
  • seo和网站建设那个先学网站seo基础优化
  • react可以做门户网站么电子商务seo
  • 网站 用什么语言指数基金怎么选
  • 西宁网站制作公司排名大兵seo博客
  • 在北京个人怎么注册公司深圳优化公司哪家好
  • 有什么做h5的网站seo综合查询站长工具关键词
  • 4s店网站建设方案网站建设网站设计
  • 站长工具seo综合查询黄网络营销理论包括哪些
  • 网站制作公司成都厦门网络推广
  • 自助建站系统网站建设系统网站建设网站建设域名服务器地址查询
  • 如何通过复制代码做网站酒店营销策划与运营
  • 如何做框架网站网站运营培训
  • 免费手机网站建设排名怎么优化快
  • 做网站初级教程百度网页版登录首页
  • 静态网站怎么维护友情链接平台网站
  • 怎么选择镇江网站建设北京有限公司
  • 如何法院网站建设sem优化服务公司