ElasticSearch 8.12 App Search价格范围过滤报错问题咨询
ElasticSearch 8.12 App Search 价格范围过滤解决方案
价格范围过滤是App Search支持的有效功能,你遇到的报错是因为用错了语法——数值类型字段的范围过滤和日期类型的语法结构不同,不能直接把from/to嵌套在字段名下方。
正确的请求格式
需要将数值范围条件放在range过滤器对象内,而非直接作为字段的值。修正后的请求体如下:
{ "query": "query", "page": { "size": 30, "current": 1 }, "filters": { "range": { "price": { "from": 50.0, "to": 100.0 } } } }
灵活的范围写法
- 仅需最小值(大于等于指定价格):
{ "query": "query", "page": { "size": 30, "current": 1 }, "filters": { "range": { "price": { "from": 50.0 } } } }
- 仅需最大值(小于等于指定价格):
{ "query": "query", "page": { "size": 30, "current": 1 }, "filters": { "range": { "price": { "to": 100.0 } } } }
前置检查
确保你的price字段在App Search引擎中被定义为数值类型(如float、integer),如果字段是字符串类型,范围过滤逻辑会失效,需先在引擎的字段设置中修改类型。
内容的提问来源于stack exchange,提问作者mrefix
相关产品推荐
相关产品推荐

