Мне нужно сопоставить список поля, чтобы увидеть, есть ли хотя бы один термин из другого списка.Другими словами, у моего сохраненного элемента Es есть список «категорий», в который он вписывается. Мне нужно пропустить список категорий, чтобы включить его в поиск.Я хочу получить все элементы, которые имеют в своем списке категорий одну или несколько категорий, из списка категорий, которые я включаю в поиск.
Я обнаружил, что этот код работает так, как я хочу:
...
.Must(qs => qs
.TermsSet(t => t
.Field(tf => tf.categories)
.Terms(searchCategories)
.MinimumShouldMatchScript(ss => ss.Source("1"))
)
)
...
Но, кажется, действительно странно вставлять сценарий «1». Такое ощущение, что я могу упустить более простой способ сделать это.Мои подозрения верны?Есть ли лучший способ сделать это?
Обновление
Приведенный выше код создает этот запрос es:
...
"must":[
{
"terms_set":{
"categories":{
"terms":[1],
"minimum_should_match_script":{"source":"1"}
}
}
}
]
...
Где terms
searchCategories
список