elasticsearch Elasticsearch嵌套搜索多个字段值,elasticsearch,nest,elasticsearch,Nest" /> elasticsearch Elasticsearch嵌套搜索多个字段值,elasticsearch,nest,elasticsearch,Nest" />

elasticsearch Elasticsearch嵌套搜索多个字段值

elasticsearch Elasticsearch嵌套搜索多个字段值,elasticsearch,nest,elasticsearch,Nest,我正在我的页面中结合搜索和聚合 当从不同组组合时,聚合工作正常,但当我从同一组中选择多个聚合时,聚合工作不正常 例如。。。如果我在默认页面上显示了2个聚合,则加载 aggA(1000) aggB(400) 正确选择aggA将显示1000个结果。。。而aggB将相应减少到50 然而,当我点击一个aggB而不是得到预期的50个结果时,我得到了400个。。。因此,我的搜索结果不是组合这两个搜索查询值,而是作用于传递给elasticsearch的列表中的最后一个值 我的代码: objESResults

我正在我的页面中结合搜索和聚合

当从不同组组合时,聚合工作正常,但当我从同一组中选择多个聚合时,聚合工作不正常

例如。。。如果我在默认页面上显示了2个聚合,则加载

aggA(1000) aggB(400)

正确选择aggA将显示1000个结果。。。而aggB将相应减少到50

然而,当我点击一个aggB而不是得到预期的50个结果时,我得到了400个。。。因此,我的搜索结果不是组合这两个搜索查询值,而是作用于传递给elasticsearch的列表中的最后一个值

我的代码:

objESResults = client.Search<ESContent>(s => s
        .Query(a =>
        {
            return
            a.Match(m => m.OnField("_all").Query(m_strSearchQuery).Operator(Operator.And))                
            && a.TermsDescriptor(t => t.OnField(f => f.ContentType).Terms(m_lstSelectedContentType))
            && a.TermsDescriptor(t => t.OnField(f => f.Sectors).Terms(m_lstSelectedSector))
            && a.TermsDescriptor(t => t.OnField(f => f.Companies).Terms(m_lstSelectedCompany))
            && a.TermsDescriptor(t => t.OnField(f => f.ContentRegions).Terms(m_lstSelectedContentRegion))
            && a.TermsDescriptor(t => t.OnField(f => f.Author).Terms(m_lstSelectedAuthor))
            && a.TermsDescriptor(t => t.OnField(f => f.Country).Terms(m_lstSelectedCountry))
            && a.TermsDescriptor(t => t.OnField(f => f.Columns).Terms(m_lstSelectedColumns))
            && a.Range(t => t.OnField(f => f.EntryDate).GreaterOrEquals(DateFrom));
        }
objESResults=client.Search(s=>s
.Query(a=>
{
返回
a、 匹配(m=>m.OnField(“_all”).Query(m_strearchquery).Operator(Operator.And))
&&a.TermsDescriptor(t=>t.OnField(f=>f.ContentType).Terms(m_lsselectedcontenttype))
&&a.TermsDescriptor(t=>t.OnField(f=>f.Sectors).Terms(m_lsselectedsector))
&&a.TermsDescriptor(t=>t.OnField(f=>f.companys).术语(m_lsselectedcompany))
&&a.TermsDescriptor(t=>t.OnField(f=>f.ContentRegions).Terms(m_lsselectedcontentregion))
&&a.TermsDescriptor(t=>t.OnField(f=>f.Author).Terms(m_lsselectedauthor))
&&a.TermsDescriptor(t=>t.OnField(f=>f.Country).Terms(mlsselectedcountry))
&&a.TermsDescriptor(t=>t.OnField(f=>f.Columns).Terms(m_lsselectedcolumns))
&&a.Range(t=>t.OnField(f=>f.EntryDate).greaterrequals(DateFrom));
}

MlsSelectedSector将包含aggA和aggB的值,但是否有某种方法可以让弹性搜索在它们上执行and,而不是只搜索列表中的最后一个值。

通过向每个查询添加
来解决此问题。最小值应匹配(100%)