На даний момент я намагаюся перенести додаток на основі solr на еластичний пошук.
У мене цей запит на люцені
((
name:(+foo +bar)
OR info:(+foo +bar)
)) AND state:(1) AND (has_image:(0) OR has_image:(1)^100)
Наскільки я розумію, це комбінація ОБОВ'ЯЗКОВИХ пропозицій у поєднанні з булевими АБО:
"Отримати всі документи, що містять (foo AND bar in name) OR (foo AND bar in info). Після цього фільтруйте результати за умовою state = 1 та збільшуйте документи, що мають зображення."
Я намагаюся використовувати запит bool з ОБОВ'ЯЗКОВО, але мені не вдається отримати булеві АБО в застереження must. Ось що я маю:
GET /test/object/_search
{
"from": 0,
"size": 20,
"sort": {
"_score": "desc"
},
"query": {
"bool": {
"must": [
{
"match": {
"name": "foo"
}
},
{
"match": {
"name": "bar"
}
}
],
"must_not": [],
"should": [
{
"match": {
"has_image": {
"query": 1,
"boost": 100
}
}
}
]
}
}
}
Як бачите, ОБОВ'ЯЗКОВІ умови для "інформації" відсутні.
Хтось має рішення?
Дуже дякую.
** ОНОВЛЕННЯ **
Я оновив запит на еластичний пошук і позбувся цього показника функції. Моя базова проблема все ще існує.