`OpenSearch.Client` - поиск документов с полем внутри набора значенийC#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Гость
 `OpenSearch.Client` - поиск документов с полем внутри набора значений

Сообщение Гость »


Я хочу найти документы, в которых поле соответствует любому из значений в наборе, скажем, массиву new int[]{3,7,80}.

Я вижу, что потенциально могу сделать это вот так:

var response = openSearchClient.Search(s => s .Index(имяиндексадокументов) .Query(д => д .Bool(bq => bq .Must(mq => mq.Term("fieldName", 3) || mq.Term("filedName", 7) || mq.Term("filedName", 8)) ) ); Может быть, я мог бы также построить этот запрос в программном цикле.

Но нет ли лучшего способа?

Я вижу, что существует метод .TermSet() (документация здесь), но он, похоже, не дает ожидаемых результатов:

var response = openSearchClient.Search(s => s .Index(имяиндексадокументов) .Query(д => д .Bool(bq => bq .Must(mq =>TermsSet(f => f.Field(d => d.fieldName).Terms(new int[]{3,7,80}))) ) ); Я включил журналирование запросов и вижу, что приведенный выше код генерирует пустые запросы.

Может кто-нибудь сказать мне, как это делается?

Обновление:

Думаю, мне следует включить скрипт для параметра minimum_should_match. Но я попробовал это сейчас, и это не сработало:
mq.TermsSet(f => f.Field(d => d.fieldName).Terms(new int[]{3,7,80}).MinimumShouldMatchScript(sr => sr.Source(" 1")))
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ, комментарий, отзыв

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C#»