微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用弹性搜索比较两个字段 7

如何解决使用弹性搜索比较两个字段 7

我对弹性搜索不太了解。我们可以在从 Elastic 服务器获取记录时比较两种类型的价格吗?举个例子

"hits": [
        {
            "_index": "magento2_default_catalog_product_20210531_051304","_type": "_doc","_id": "57","_score": 1.0,"_source": {
                "entity_id": "57","visibility": "4","price": [
                    {
                        "price": 1.0,"original_price": 1.0,"is_discount": false,"customer_group_id": 0,"tax_class_id": 2,"final_price": 0.0,"min_price": 1.0,"max_price": 1.0
                    },{
                        "price": 1.0,"customer_group_id": 1,"customer_group_id": 2,"customer_group_id": 3,"max_price": 1.0
                    }
                ]
                "stock": {
                    "is_in_stock": true,"qty": 0
                }
            }
        },{
            "_index": "magento2_default_catalog_product_20210531_051304","_id": "91","_source": {
                "entity_id": "91","max_price": 1.0
                    }
                ],"stock": {
                    "is_in_stock": true,]

我有大量的记录,现在我需要那些最终价格低于价格的记录。由于价格是数组类型,我有客户组 ID 和税级 ID,因此我需要将其与相应的索引进行比较。假设我的客户组 ID 为 0,税种 ID 为 2,因此它应该比较第一个指数或匹配价格指数的价格和最终价格。

感谢有人能在这里提供帮助。

解决方法

为了能够查询数组内部对象,您应该将价格映射为嵌套类型,对象数组无法按您预期的那样工作,因为您无法独立于数组中的其他对象查询每个对象。如果您需要能够做到这一点,那么您应该使用嵌套数据类型而不是对象数据类型。您可以找到解决方案 here。 您也可以查看 ES 官方文档关于数组和嵌套对象 here

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。