Я работаю над Elasticsearch NEST Client для.NET. Я должен выполнить запрос Query Query Query в ES.
CASE
WHEN [CompanyId] <> 1 AND VisibilityId=1 AND [Publish] = 1 AND StatusId = 1 THEN 1
WHEN [OrganizationId] = 1 THEN 1
ELSE 0
END = 1
Ясно, что я понятия не имею, как это сделать. Я исправляю последние 2 дня, но ничего не нашел.
может ли он использоваться с фильтром терминов, как это было в предыдущих строках, таких как:
new FilterDescriptor<MyClass>()
.Term("OrganizationId", 1)
Я достиг этого, объединив Bool Query
и Or Filter
как:
new FilterDescriptor<ListingViewDTO>()
.Or(fo => fo.Bool(b => b.Must(c => c.And(
fs => !fs.Term("OrganizationId", compositeFilter.OrganizationId),
fs => fs.Query(q => q.Fuzzy(n => n.OnField("ListingAttributeDTO.AttributeName").Value("ListingPublish"))),
fs => fs.Query(q => q.Fuzzy(n => n.OnField("ListingAttributeDTO.Value").Value("1"))),
fs => fs.Term("VisibilityId", (int)Visibility.AnyOne),
fs => fs.Term("StatusId", 2)))),
fo => fo.Term("OrganizationId", compositeFilter.OrganizationId));