C# 从弹性体中排除(不包含)某些值的查询
我使用NEST query从elastic中筛选记录 以下查询将根据C# 从弹性体中排除(不包含)某些值的查询,c#,elasticsearch,nest,C#,elasticsearch,Nest,我使用NEST query从elastic中筛选记录 以下查询将根据articleIds列表过滤记录。它很好用 QueryContainer nestedQuery = null; nestedQuery &= Query<PublishedArticle>.Terms(qs => qs .Field(f => f.AssignedArticleList.FirstOrDefault().AssignedArticleId)
articleIds
列表过滤记录。它很好用
QueryContainer nestedQuery = null;
nestedQuery &= Query<PublishedArticle>.Terms(qs => qs
.Field(f => f.AssignedArticleList.FirstOrDefault().AssignedArticleId)
.Terms(articleIds)
);
QueryContainer nestedQuery=null;
nestedQuery&=Query.Terms(qs=>qs
.Field(f=>f.AssignedArticleList.FirstOrDefault().AssignedArticleId)
.条款(articleIds)
);
但是现在我想获取不包含proparticleIds
中的值的记录。我如何做到这一点?正在检查不得
子句上的弹性。如何构建此查询
articleIds
基本上是一个整数列表
感谢您的帮助!:) 您需要一个带有
must\u not
子句的bool
查询
var articleIds = new[] { 1, 2, 3, 4 };
client.Search<PublishedArticle>(s => s
.Query(q => q
.Bool(b => b
.MustNot(mn => mn
.Terms(t => t
.Field(f => f.AssignedArticleList.FirstOrDefault().AssignedArticleId)
.Terms(articleIds)
)
)
)
)
);
两者都产生
{
"query": {
"bool": {
"must_not": [
{
"terms": {
"assignedArticleList.assignedArticleId": [
1,
2,
3,
4
]
}
}
]
}
}
}
谢谢工作得非常好!:)除了弹性文档中提到的内容外,还有其他教程参考吗?还有客户文档-我们希望进一步扩展,包括关于分析、索引、渗透等的附加部分,并更好地组织这些部分。
{
"query": {
"bool": {
"must_not": [
{
"terms": {
"assignedArticleList.assignedArticleId": [
1,
2,
3,
4
]
}
}
]
}
}
}