Повышающий запрос не работает должным образом

{
  "sort": [
    {
      "is_active": "asc"
    }
  ],
  "fields": [
    "is_job_seeking", "is_active"
  ],
  "query": {
    "bool": {
      "must": [
        {
          "bool": {
            "must": {
              "term": {
                "is_job_seeking": 1
              }
            }
          }
        }
      ]
    }
  }
}

этот запрос возвращает мне весь документ, который имеет is_job_seeking=1, а также is_active=0 а также is_active=1 и это нормально, теперь, когда я хочу повысить балл за документ, который имеет is_active=1 Я добавил boosting лайк

{
  "sort": [
    {
      "is_active": "asc"
    }
  ],
  "fields": [
    "is_job_seeking", "is_active"
  ],
  "query": {
    "bool": {
      "must": [
        {
          "bool": {
            "must": {
              "term": {
                "is_job_seeking": 1
              }
            }
          }
        },
        {
          "boosting": {
            "positive": {
              "term": {
                "is_active": 1
              }
            },
            "negative": {
              "term": {
                "is_active": 0
              }
            },
            "negative_boost": 0.3
          }
        }
      ]
    }
  }
}

но это дает мне результаты только с is_active=1

1 ответ

Решение

Попробуй это:

{
  "sort": [
    {
      "is_active": "asc"
    }
  ],
  "fields": [
    "is_job_seeking",
    "is_active"
  ],
  "query": {
    "bool": {
      "must": [
        {
          "bool": {
            "must": {
              "term": {
                "is_job_seeking": 1
              }
            }
          }
        }
      ],
      "should": [
        {
          "boosting": {
            "positive": {
              "term": {
                "is_active": 1
              }
            },
            "negative": {
              "term": {
                "is_active": 0
              }
            },
            "negative_boost": 0.3
          }
        }
      ]
    }
  }
}
Другие вопросы по тегам