嵌套查询是否用于ElasticSearch中的对象映射?

时间:2018-03-12 17:28:15

标签: elasticsearch nest elasticsearch-dsl

假设我们在ElasticSearch中有一个文档模型,它有一个字符串(registration)和一个名为currentname的对象数据类型,然后它有一个名为name的值。我在底部添加了模型JSON。

您如何查询?

由于metadata项没有使用嵌套关键字,我假设我们可以在没有嵌套的情况下获取数据。但是,由于metadata确实有属性值,我不确定。

我的尝试:

我尝试过简单模型(NEST):

        var res2 = client.Search<dynamic>(s =>
             s.Index("myindexname").AllTypes().
                Query(q => q.
                    Bool(b => b.
                        Must(mu => mu.
                            Term(te =>
                                te.Field("metadata.currentname.name").Value(query))))));

这不会返回任何文件。

但是,如果我必须使用嵌套查询,我不完全理解为什么(是因为这些对象基本上是一个不同的索引?)。 DSL(或NEST代码)看起来如何做正确的呼叫?

文档模型:

properties: { 
    Company: {
        properties: {
           registration: {
              type: "string"
           },
           metadata: {
               currentname: {
                   properties: {
                      name: "string"
                    }
                }
            }
        }
    }
}

1 个答案:

答案 0 :(得分:1)

嵌套查询仅用于嵌套数据类型