【问题标题】:GeoPoint field type in elasticsearch-dsl-pyelasticsearch-dsl-py 中的 GeoPoint 字段类型
【发布时间】:2016-05-08 12:36:15
【问题描述】:

我将elasticsearch-dsl-py 0.0.11 用于ES 1.7,我想添加GeoPoint 类型,如fields.py 中所列:

__all__ = [
    'construct_field', 'Field', 'Object', 'Nested', 'Date', 'String', 'Float', 'Double',
    'Byte', 'Short', 'Integer', 'Long', 'Boolean', 'Ip', 'Attachment',
    'GeoPoint', 'GeoShape', 'InnerObjectWrapper'
]

但不存在名为 GeoPoint 的类,我无法为这样的位置字段创建映射:

location = GeoPoint()

我该怎么办?

【问题讨论】:

标签: python elasticsearch elasticsearch-dsl


【解决方案1】:

你需要确保像这样导入GeoPoint

from elasticsearch_dsl import GeoPoint

然后您可以将您的位置字段声明为

location = GeoPoint()

【讨论】:

  • fields.py 或任何地方都没有任何名为GeoPoint 的类的定义(我在Github 中搜索过,但没有找到)
  • 所有类都是generated dynamically 并且不包含在静态定义的类中。您至少尝试过该代码吗?它对我有用,所以我不明白你为什么不赞成。
  • IDE 在导入此类时会出现问题,但@Val 给出的代码确实有效。
  • 我该如何查询?
  • nvm,它是MyDocType.search().filter( 'geo_distance', distance='1000m', location={"lat": "40", "lon": "-74"} )
猜你喜欢
  • 2017-12-26
  • 2012-08-31
  • 1970-01-01
  • 1970-01-01
  • 2017-07-07
  • 1970-01-01
  • 1970-01-01
  • 2016-03-27
  • 2021-10-19
相关资源
最近更新 更多