ale*_*loy 3 python elasticsearch
我正在尝试通过以下代码片段从 ES 中获取一些地理数据:
result = es.search(
index="loc",
body={
{
"filtered" : {
"query" : {
"field" : { "text" : "restaurant" }
},
"filter" : {
"geo_distance" : {
"distance" : "12km",
"location" : {
"lat" : 40,
"lon" : -70
}
}
}
}
}
}
)
Run Code Online (Sandbox Code Playgroud)
然而,由于以下错误,查询未成功:
"lon" : -70
TypeError: unhashable type: 'dict'
Run Code Online (Sandbox Code Playgroud)
location 字段正确映射到 geo_point 类型,查询取自官方示例。我编写查询的方式有问题吗?
您正在将 a 嵌套dict在 a 内set。删除外部花括号即可解决问题。该错误源于这样一个事实:集合、字典不能包含不可散列的集合,例如字典(感谢@Matthias)。
body=
{
"filtered" : {
"query" : {
"field" : { "text" : "restaurant" }
},
"filter" : {
"geo_distance" : {
"distance" : "12km",
"location" : {
"lat" : 40,
"lon" : -70
}
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2781 次 |
| 最近记录: |