C# Elasticsearch嵌套-具有多个筛选器的简单查询
我正在尝试执行一个简单的查询,我想:C# Elasticsearch嵌套-具有多个筛选器的简单查询,c#,
elasticsearch,nest,C#,
elasticsearch,Nest,我正在尝试执行一个简单的查询,我想: select * from POC where Account_No = [accountno] and BUSINESS_UNIT = [business_unit] 下面是我没有运气的情况。有什么想法吗 var filters = new List<FilterContainer>(); filters.Add(new FilterDescriptor<poc>().Bool(b => b.Must(m => m
select * from POC where Account_No = [accountno] and BUSINESS_UNIT = [business_unit]
下面是我没有运气的情况。有什么想法吗
var filters = new List<FilterContainer>();
filters.Add(new FilterDescriptor<poc>().Bool(b => b.Must(m => m.Term(i => i.Account_No, txtAccount.Text))));
filters.Add(new FilterDescriptor<poc>().Bool(b => b.Must(m => m.Term(i => i.BUSINESS_UNIT, txtBU.Text))));
var searchDescriptor = new SearchDescriptor<poc>();
// Filter with AND operator
searchDescriptor.Filter(f => f.And(filters.ToArray()));
var r = client.Search<poc>(searchDescriptor);
这应该满足您的要求:
FilterContainer filter = null;
filter &= Filter<poc>.Term(i => i.Account_No, txtAccount.Text);
filter &= Filter<poc>.Term(i => i.BUSINESS_UNIT, txtBU.Text);
var r = client.Search<poc>(sd => sd.Filter(f => filter));
FilterContainer过滤器=null;
filter&=filter.Term(i=>i.Account\u No,txtcount.Text);
filter&=filter.Term(i=>i.BUSINESS\u单元,txtBU.Text);
var r=client.Search(sd=>sd.Filter(f=>Filter));
我将过滤器改为使用Match而不是Term,它似乎可以工作
我不知道为什么会出现这种情况,但当我使用术语Business\u Unit进行搜索时,即使是单独搜索,也不会返回任何结果
var filters = new List<FilterContainer>();
filters.Add(new FilterDescriptor<poc>().Bool(b => b.Must(m => m.Query(q => q.Wildcard(z => z.Account_No, txtAccount.Text + "*")))));
filters.Add(new FilterDescriptor<poc>().Bool(b => b.Must(m => m.Query(q => q.Match(mat => mat.OnField(z => z.BUSINESS_UNIT).Query(txtBU.Text))))));
var searchDescriptor = new SearchDescriptor<poc>();
// Filter with AND operator
searchDescriptor.Filter(f => f.And(filters.ToArray()));
var r = client.Search<poc>(searchDescriptor);
{
"query": {
"term": {
"BUSINESS_UNIT": "cspcn"
}
}
}
我发现业务单元应该是小写的。谢谢你的回复啊,很好。听起来你在用标准分析仪。您可以为您的类型指定架构,并使用不同的分析器,该分析器可以不区分大小写。
{
"query": {
"term": {
"BUSINESS_UNIT": "cspcn"
}
}
}