C# Elasti c Поиск - необходимо добавить новый параметр в индексный объект Elasti c и установить его значение по умолчанию для всех других объектов. - PullRequest
0 голосов
/ 03 мая 2020

Я новичок в c# и поиске Elasti c. У меня есть индекс профиля пользователя, в который я должен добавить логический параметр isActive в приложении C#. Я пытаюсь добавить реализацию, чтобы получить пользователей, у которых флаг isActive установлен в True, и пользователей, у которых этот флаг вообще отсутствует в запросе Elasti c от c#. но не удается получить точный запрос для добавления к текущему поисковому запросу getUsers.

Я пытаюсь создать запрос Elasti c из C#, где атрибут isActive отсутствует в объекте пользователя или isActive is правда.

Любая помощь будет высоко ценится.

1 Ответ

2 голосов
/ 03 мая 2020

Для проверки IsActive == true необходимо использовать условие (OR) с термином запроса и предложение must_not для проверки наличия поля

var searchResponse = _elasticClient.Search<Project>(s => s
                    .Query(q => q
                    .Bool(b => b
                        .Should(
                                    sh => sh.Term(t => t.IsActive, true),
                                    sh => sh.Bool(bl => bl.MustNot(mn => mn.Exists(e => e.Field(et => et.IsActive)))))
                                )
                          )
                    )

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...