我在get_or_create向ES 执行多个请求时遇到了一些问题.Elasticsearch在响应POST索引文档后似乎需要一些时间,以至于刚刚GET调用后没有返回任何结果.
此示例重现了此问题:
curl -XPOST 'http://localhost:9200/twitter/tweet/' -d '{
"user" : "kimchy",
"post_date" : "2009-11-15T14:12:12",
"message" : "trying out Elastic Search"
}' && \
curl -XGET 'http://localhost:9200/twitter/tweet/_search' -d '{
"query" : {
"term" : { "user" : "kimchy" }
}
}' && \
sleep 1 && \
curl -XGET 'http://localhost:9200/twitter/tweet/_search' -d '{
"query" : {
"term" : { "user" : "kimchy" }
}
}'
Run Code Online (Sandbox Code Playgroud)
该POST得好:
{
"ok": true,
"_index": "twitter", …Run Code Online (Sandbox Code Playgroud) 我有在亚马逊S3上托管的文件,我想在我的应用程序中进行处理后下载它们.此应用程序视图需要HTTP Authorization标头才能继续.这是过程:
/file/xxx带有所需Authorization请求标头的查询视图事实是请求标头也在重定向上传播,并且与Amazon的S3签名冲突,我有以下错误消息:
应指定签名查询字符串参数或授权标头,而不是两者
那么,有没有办法不将Authorization标头传播到S3?
请注意,我已经测试了所有3xxHTTP代码.提前致谢.
我想完全转移elasticsearch以使用PostGIS扩展来过滤PostGreSQL当前处理的元素.
为此,我必须选择围绕(多)多边形的给定距离内的每个结果.
那些多边形可能很复杂(数百个点).
我在一年前看到,elasticsearch无法处理这样的过滤器.
在一年中,ES已经有了很大的发展(包括一个主要版本),那么现在支持的那种过滤是什么?如果没有,有什么计划吗?
为了解释,这是一个简单的用例:
将此多边形视为粗略描述巴黎"Ile delacité"边界:
{
"type": "MultiPolygon",
"coordinates": [
[
[
[
2.339546203568933,
48.857710541463412
],
[
2.345168113663295,
48.856750530470009
],
[
2.350618362380806,
48.855056348509926
],
[
2.352077484084764,
48.853785674412812
],
[
2.352592468215498,
48.851611335037532
],
[
2.348730087234629,
48.852543206332619
],
[
2.343194007828603,
48.855084585345963
],
[
2.339546203568933,
48.857710541463412
]
]
]
]
}
Run Code Online (Sandbox Code Playgroud)
考虑另一个岛对面的位置(因此,在多边形之外):
{
"type": "Point",
"coordinates": [
2.359378457022193,
48.850358223189644
]
}
Run Code Online (Sandbox Code Playgroud)
以下是使用Django ORM的一些示例查询(我可以提供SQL等价但我认为这不相关):
>>> Location.objects.filter(point__within=(area.polygon))
[]
>>> Location.objects.filter(point__distance_lte=(area.polygon, D(m=500)))
[]
>>> Location.objects.filter(point__distance_lte=(area.polygon, D(m=550)))
[<Location: Ile saint louis>]
Run Code Online (Sandbox Code Playgroud)
该 …