作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个带有嵌套对象数组的简单对象
public class Product {
public Guid Id { get; set; } = Guid.NewGuid();
public string Name { get; set; }
public ProductTag[] Tags {get; set;} = new ProductTag[0];
}
public class ProductTag {
public string TagName {get; set;}
public string Color {get; set;} = "orange";
}
Tags
是
mapped as a nested datatype使用
client.CreateIndex(Indices.Index<Product>(), d =>
d.Mappings(m =>
m.Map<Product>(mm => mm
.AutoMap()
.Properties(pd => pd
.Text(tpd => tpd.Name(x => x.Name))
.Nested<ProductTag>(npd => npd
.Name(x => x.Tags)
.AutoMap()
.Properties(pd2 => pd2
.Keyword(kpd => kpd
.Name(x => x.Color)
)
)
)
)
)
)
TagName
为“orange”的标签的产品。
client.Search<Product>(s => s
.Query(q => q
.Nested(nqd => nqd
.Path(x => x.Tags)
.Query(qcd => qcd
.Bool(bqd => bqd
.Must(qcd
.Match(mqd => mqd
.???
)
)
)
)
)
)
Nested
似乎未设置要查询的另一种类型,我对如何执行此查询有些迷惑。
最佳答案
以下将做到这一点
client.Search<Product>(s => s
.Query(q => q
.Nested(nqd => nqd
.Path(x => x.Tags)
.Query(qcd => qcd
.Match(mqd => mqd
.Field(f => f.Tags.First().TagName)
.Query("orange")
)
)
)
)
);
{
"query": {
"nested": {
"query": {
"match": {
"tags.tagName": {
"query": "orange"
}
}
},
"path": "tags"
}
}
}
.First()
是遍历目标字段的表达式的一部分。您也可以使用
f => f.Tags[0].TagName
f => f.Tags.Last().TagName
f => f.Tags.Single().TagName
f => f.Tags.ElementAt(0).TagName
f => f.Tags.Max().TagName
ProductTag
,并表示一个
MemberExpression
关于.net - 如何对对象数组进行嵌套查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49000423/
我是一名优秀的程序员,十分优秀!