可能是GeoShape过滤器(NEST)中的错误

用户名

不知道错误在哪里,但这就是我遇到的问题。以下代码(经过GeoShape过滤的查询):

List<List<double>> gs_polygone_quiberon = new List<List<double>>() { 
            new List<double>() {-3.183515, 47.542491} 
            , new List<double>(){-3.095624, 47.537624} 
            , new List<double>(){-3.026788, 47.478487}
            , new List<double>() {-3.190896, 47.452956}
            , new List<double>() {-3.183515, 47.542491} 
        };

var results = client.Search<Elastic_Oi>(s => s
    .AllIndices()
    .From(0)
    .AllTypes()
    .Size(10)
    .Query(q => q.Filtered(
                f => f.Filter(x =>
                    x.GeoShape("GeoShapeLocation", d => d.Type("polygon").Coordinates(gs_polygone_quiberon))
                    )
                )
    )
);

生成以下JSon:

{
  "from": 0,
  "size": 10,
  "query": {
    "filtered": {
      "filter": {
        "geo_shape": {
          "GeoShapeLocation": {
            "shape": {
              "type": "polygon",
              "coordinates": [
                [
                  -3.183515,
                  47.542491
                ],
                [
                  -3.095624,
                  47.537624
                ],
                [
                  -3.026788,
                  47.478487
                ],
                [
                  -3.190896,
                  47.452956
                ],
                [
                  -3.183515,
                  47.542491
                ]
              ]
            }
          }
        }
      }
    }
  }
}

在NEST中出现400错误。

直接在ES中执行Json会生成空指针异常。为了能够执行查询,我必须在“坐标”字段中添加一个缩进级别,就像下面的Json一样(我将所有“坐标”字段值都包装在[]中)

{
  "from": 0,
  "size": 10,
  "query": {
    "filtered": {
      "filter": {
        "geo_shape": {
          "GeoShapeLocation": {
            "shape": {
              "type": "polygon",
              "coordinates": [[
                [
                  -3.183515,
                  47.542491
                ],
                [
                  -3.095624,
                  47.537624
                ],
                [
                  -3.026788,
                  47.478487
                ],
                [
                  -3.190896,
                  47.452956
                ],
                [
                  -3.183515,
                  47.542491
                ]
              ]]
            }
          }
        }
      }
    }
  }
}

此查询的工作原理很简单,但无法使用Nest进行重现,CoordinatesGeoShape过滤器方法采用IEnumerable<IEnumerable<double>>参数,而不是IEnumerable<IEnumerable<IEnumerable<double>>>参数。

是Nest中的错误吗?我的代码?ES?

提前致谢 !

麦克风

用户名

“回答”我自己的问题。这确实是NEST中的一个错误,正如我们在NEST作者评论中所见,https://github.com/elasticsearch/elasticsearch-net/issues/776

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Python中过滤器错误

来自分类Dev

过滤器函数中的类型错误

来自分类Dev

dplyr 过滤器中的特殊错误

来自分类Dev

.Net Nest中的ElasticSearch过滤器聚合

来自分类Dev

jQuery添加搜索(可能是ajax吗?)过滤器以查找带前缀的跨度

来自分类Dev

angularjs过滤器错误

来自分类Dev

错误的搜索过滤器

来自分类Dev

在我的html输入中实现错误词过滤器?

来自分类Dev

翻译过滤器gem activeadmin中的错误

来自分类Dev

MOODLE中的过滤器

来自分类Dev

Angular 中的过滤器

来自分类Dev

VueJs 中的过滤器

来自分类Dev

Kibana 中的过滤器

来自分类Dev

Elastic Search NEST-如何在搜索中具有多个级别的过滤器

来自分类Dev

NEST有多个条件的条件过滤器查询

来自分类Dev

使用NEST创建自定义令牌过滤器

来自分类Dev

将多个布尔过滤器追加到NEST查询

来自分类Dev

不同类型的C#NEST条件过滤器

来自分类Dev

角度小写过滤器错误

来自分类Dev

Logstash grok 过滤器错误“_grokparsefailure”

来自分类Dev

过滤器语法错误

来自分类Dev

启动logstash的grok过滤器错误

来自分类Dev

错误:模板解析错误:在角度中找不到管道“过滤器”

来自分类Dev

hplip中的“过滤器失败”

来自分类Dev

从woocommerce中的类覆盖过滤器

来自分类Dev

Elisp中的过滤器功能

来自分类Dev

在angularjs中处理多个过滤器

来自分类Dev

在WebSecurityConfigurerAdapter中配置过滤器

来自分类Dev

玉器中的过滤器嵌套失败