使用 Lucene 查询语法的 Azure 搜索查询是否可以具有具有 geo.distance 函数的筛选器和另一个筛选



>我正在查询一个 Azure 搜索索引,其中包含使用 Lucene 语法的火车时刻表停靠点,并使用 geo.distance 函数和出发时间值(表示为距午夜的分钟数(的筛选器。 当我在过滤器中单独使用 geo.distance 函数或将出发时间作为唯一过滤器时,查询有效,但两者都存在 AND(或 &&(会返回无效的表达式语法错误。

{ "搜索":"车站名称:内珀维尔", "查询类型":"完整", "filter":"geo.distance(location, geography'POINT(-88.145118 41.775038('( le 1.0 AND 出发时间以分钟为单位 ge 1400"}

上述查询的错误消息是:{ "错误":{ "代码": ", "message": "无效的表达式:'geo.distance(location, geography'POINT(-88.145118 41.775038('( 中位置 73 处的语法错误 le 1.0 和离开时间以分钟为单位 ge 1400'。\r参数名称:$filter" }}

任何帮助都非常感谢!提前谢谢你

我很抱歉发布和回答我自己的问题 - 但我刚刚了解到 Azure 搜索的 OData 表达式语法非常区分大小写。我带有小写"和"的查询有效。

我的问题中的以下查询版本成功:{ "搜索":"车站名称:内珀维尔", "查询类型":"完整", "filter":"geo.distance(location, geography'POINT(-88.145118 41.775038('( le 1.0 and departureTimeInMinutes ge 1400"}

最新更新