将 MySQL 查询(带 where 条件)转换为 Elasticsearch 查询

挖泥船离开

我需要将 mysql 查询“转换”为 Elasticsearch 查询。阻止我的是“where”语句。基本上我需要的是根据纬度和经度找到 25 英里范围内的所有物品以及启用取件的位置启用递送并提供邮政编码的物品

where
(
    (
        `enabled_pickup` = '1'
        and(
            ST_Distance_Sphere(
                POINT(- 122.41941550000001 , 37.7749295) ,
                geolocation
            ) / 1000 * 0.62137119223733
        ) <= 25
    )
    or(
        `enabled_delivery` = '1'
        `zip_code` = '94116'
    )
)

这是未按预期工作的 Elasticsearch 查询

{
"query": {
    "bool": {
      "must": [
        {
      "bool": {
        "should": [
          {
            "bool": {
              "must": [
                {
                  "match": {
                    "enabled_pickup": "1"
                  }
                },
                {
                  "geo_distance": {
                    "distance": "25 mi",
                    "geo_location": {
                      "lat": "37.7749295",
                      "lon": "-122.41941550000001"
                    }
                  }
                }
              ]
            }
          },
          {
            "bool": {
              "must": [
                {
                  "term": {
                    "dispensary.delivery": "1"
                  }
                },
                {
                  "term": {
                    "zip_code": "94116"
                  }
                }
              ]
            }
          }
        ]
      }
    }
  ]
}

} }

有人可以指出我正确的方向吗?

段错误者

我正在阅读类似的问题,您可以尝试使用以下查询。您可以通过此 stackoverflow 讨论找到正在解决的类似问题

希望这会有所帮助,干杯!

{
"query": {
        "bool": {
            "should": [
                {
                    "bool": {
                      "must": [
                            {"match": { "enabled_pickup": "1"}}
                            ,{ "match": {
                                  "geo_distance": { 
                                        "distance": "25 mi", 
                                        "geo_location": {
                                            "lat": "37.7749295",
                                            "lon": "-122.41941550000001"
                                        }
                                    }
                                }
                            }
                        ]
                    }
                  ,
                    "bool": {
                      "must": [
                            { "match": {"dispensary.delivery": "1"} }
                            ,{"match": {"zip_code": "94116"} }
                        ]
                    }
                }
            ]
        }
    }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

将MySQL查询转换为cakephp条件

来自分类Dev

将SQL查询转换为ElasticSearch查询

来自分类Dev

将MySQL查询转换为休眠查询

来自分类Dev

将mysql查询转换为JPQL查询

来自分类Dev

将MySql查询转换为MSSql查询

来自分类Dev

将mysql查询转换为laravel查询

来自分类Dev

将MySQL查询转换为BigQuery查询

来自分类Dev

将 MySQL 查询转换为 Laravel 查询

来自分类Dev

将 mysql 查询转换为 Laravel 查询

来自分类Dev

MySQL查询WHERE条件

来自分类Dev

带条件的MySQL JOIN查询

来自分类Dev

带标点的Elasticsearch查询数据将导致错误的查询结果

来自分类Dev

将MySQL查询转换为CI语法

来自分类Dev

将MySql查询转换为CakePhp 2.0

来自分类Dev

将mysql查询转换为MS SQL

来自分类Dev

将Mysql查询转换为Elastic Search

来自分类Dev

将MySQL查询转换为CI语法

来自分类Dev

将MySQL查询转换为mongoDB

来自分类Dev

将MySQL转换为PDO-查询

来自分类Dev

MYSQL将联接转换为子查询

来自分类Dev

将 mysql 查询转换为 sqlalchemy 语句

来自分类Dev

将 MYSQL 查询转换为 Eloquent Laravel

来自分类Dev

将 MSSQL 查询转换为 MySQL 5.7.23

来自分类Dev

Laravel 将 Mysql 查询转换为 Eloquent

来自分类Dev

将mysql插入查询转换为eloquent

来自分类Dev

如何将“ where” mySQL查询转换为方法语法?

来自分类Dev

带条件子查询的where语句

来自分类Dev

将MySQL查询转换为Laravel 4.2查询

来自分类Dev

将MySql查询转换为Django ORM查询