Я совмещаю поиск и агрегации на своей странице.Elasticsearch гнездо поиск нескольких значений полей
Агрегаты работают нормально, если они объединены из разных групп, но работают неправильно, когда я выбираю несколько агрегатов из одной группы.
, например ... если у меня есть 2 агрегирование, показывающее при загрузке страницы по умолчанию говорят
Агги (1000) aggB (400)
Выбор Агги правильно показывает 1000 результатов ... и aggB будет соответственно, можно уменьшить, чтобы сказать 50
Однако, когда я затем выбираю aggB вместо получения ожидаемых 50 результатов, я получаю 400 ... поэтому мои результаты поиска не объединяют 2 значения поискового запроса, а просто действуют на последнем в мой список, который передается 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));
}
m_lstSelectedSector будет содержать значения для Агга и aggB, но есть какой-то способ, чтобы получить эластичный поиск, чтобы сделать и на них, а не просто поиск на последнее значение в списке. ?