当前位置: 首页 > 知识库问答 >
问题:

Python ElasticSearch查询错误

齐航
2023-03-14

我已经使用映射查询在ElasticSearch中执行搜索,它工作得很好,如下所示。

{
                "query": {
                    "bool" : {
                        "must" : {
                            "match_all" : {}
                        },
                        "filter" : {
                            "geo_distance" : {
                                "distance" : "{}mi".format(list_info.radius_b),
                                'location': {
                                    "lat": zip.lat,
                                    "lon": zip.lng
                                }
                            }
                        },
                    },
                },
                "sort" : [
                    {
                        "_geo_distance" : {
                            'location': {"lat": zip.lat,
                                        "lon": zip.lng},
                            "order" : "asc",
                            "unit" : "mi",
                            "mode" : "min",
                            "distance_type" : "sloppy_arc"
                        }
                    }
                ],
                "from": 0,
                "size": 0,
            }

然而,即使我添加了“terms”,我也会得到错误:TransporDeror(400,u'parsing_exception',u'[term]格式错误的查询,预期的[END_OBJECT]但找到了[FIELD_NAME]')

{
                "query": {
                    "bool" : {
                        "must" : {
                            "match_all" : {}
                        },
                        "filter" : {
                            "geo_distance" : {
                                "distance" : "{}mi".format(list_info.radius_b),
                                'location': {
                                    "lat": zip.lat,
                                    "lon": zip.lng
                                }
                            }
                        },
                    },
                    "term" : { "status" : "approved" }
                },
                "sort" : [
                    {
                        "_geo_distance" : {
                            'location': {"lat": zip.lat,
                                        "lon": zip.lng},
                            "order" : "asc",
                            "unit" : "mi",
                            "mode" : "min",
                            "distance_type" : "sloppy_arc"
                        }
                    }
                ],
                "from": 0,
                "size": 0,
            }

共有1个答案

谷隐水
2023-03-14

新的术语查询必须位于bool/filter查询中:

{
  "query": {
    "bool": {
      "must": {
        "match_all": {}
      },
      "filter": [
        {
          "geo_distance": {
            "distance": "{}mi".format(list_info.radius_b),
            "location": {
              "lat": zip.lat,
              "lon": zip.lng
            }
          }
        },
        {
          "term": {
            "status": "approved"
          }
        }
      ]
    }
  },
  "sort": [
    {
      "_geo_distance": {
        "location": {
          "lat": zip.lat,
          "lon": zip.lng
        },
        "order": "asc",
        "unit": "mi",
        "mode": "min",
        "distance_type": "sloppy_arc"
      }
    }
  ],
  "from": 0,
  "size": 0
}
 类似资料:
  • 问题内容: 我有这个 MySQL 查询 得到这个错误: 我的表架构如下: 而且我不明白错误是从哪里来的。有任何想法吗? 问题答案: 如手册中所述: 以前,逗号运算符()和都具有相同的优先级,因此join表达式被解释为。现在具有更高的优先级,因此该表达式被解释为。此更改会影响使用子句的语句,因为该子句只能引用联接操作数中的列,并且优先级的更改会更改对这些操作数的解释。 例子: 以前,由于as的隐式分

  • 问题内容: 我遇到了NHibernate的间歇性问题,该问题会为实体生成查询,但是用来自完全不同(且不相关)的实体的列替换了其中的一列。 它只能替换单个列,通常可以通过重新启动应用程序来解决(尽管有时需要进行几次尝试)。 ASP.NET应用程序(.NET 4.0) 在Application_Start期间创建的SessionFactory NHibernate 3.3.1-通过代码映射完成所有映射

  • 如何修复以下错误以及为什么会出现“操作数类型:M”?我已经阅读了aws文档并搜索了堆栈溢出,但几个小时后仍然无法解决此问题。我想以iso格式查询一个处于活动状态且日期介于开始日期和结束日期之间的项目。我将错误“操作数类型:M”解释为在操作数:datesell、:start和:end中使用映射类型。但是,所有操作数都只是字符串。 SQL命令类似于:SELECT datesell,profit FRO

  • 我对命名查询有问题,但我不明白为什么它不工作。 我是这样定义查询的: 在这里我使用它: 错误:由:组织引起。冬眠HibernateException:命名查询中的错误:getUserRatings

  • 问题内容: 我正在针对AWS Elasticsearch 5.1运行此查询,并收到格式错误的查询错误。这是请求的正文。我基本上只是在检查时间范围内是否存在该字段。 问题答案: 第二条陈述不正确:

  • 这里是我的问题:我从amazon dynamodb api中读到,for query中的条件意味着检查列表*中的匹配元素,但为什么它返回错误:*查询键条件不受支持? aws dynamodb查询--表名Music--关键条件{“艺术家”:{“AttributeValueList”:[{“S”:“Wangdong”}、{“S”:“Acme Band”}]、“ComparisonOperator”:“