Проблема должна и должна в Query for ElasticSearch - PullRequest
0 голосов
/ 08 июля 2019

Я хочу, чтобы слова "must" и "must" были в моем bool, но я не получил желаемого результата.

Для запроса ниже у меня 3 и 1 документы соответственно.

{
    "timeout":"5s",
    "query":{
    "bool":{
    "must":[
        {"term":{"rgtnRelt.reltRcptIdI":{"value":"9175","boost":1.0}}},
        {"term":{"rgtnRelt.reltRcptIdI":{"value":"9844","boost":1.0}}},
        {"term":{"rgtnRelt.reltRcptIdI":{"value":"0075","boost":1.0}}},
        {"term":{"rgtnRelt.reltRcptIdI":{"value":"7678","boost":1.0}}}
        ],
    "adjust_pure_negative":true,"boost":1.0
        }
        }
}





{
    "timeout":"5s",
    "query":{
    "bool":{
    "must":[
        {"term":{"_id":{"value":"9175-9844-0075-7678","boost":1.0}}}
        ],
    "adjust_pure_negative":true,"boost":1.0
        }
        }
}

Чтобы получить все документы в одном запросе, я написал, как показано ниже, но все еще получаю только 3 документа.

{
    "timeout":"5s",
    "query":{
    "bool":{
    "must":[
        {"term":{"rgtnRelt.reltRcptIdI":{"value":"9175","boost":1.0}}},
        {"term":{"rgtnRelt.reltRcptIdI":{"value":"9844","boost":1.0}}},
        {"term":{"rgtnRelt.reltRcptIdI":{"value":"0075","boost":1.0}}},
        {"term":{"rgtnRelt.reltRcptIdI":{"value":"7678","boost":1.0}}}
        ],
    "should":[
        {"term":{"_id":{"value":"9175-9844-0075-7678"}}}
        ],
    "adjust_pure_negative":true,"boost":1.0
        }
        }
}

Я просто хочу все документы, используя один запрос

Ответы [ 2 ]

0 голосов
/ 09 июля 2019

ниже работал у меня

{
    "query":{
        "bool":{"should":[
            {"match_phrase":{"rgtnRelt.reltRcptIdI":"9175-9844-0075-7678"}},
        {"match":{"_id":"9175-9844-0075-7678"}}]
    }   }
}
0 голосов
/ 08 июля 2019

Попробуйте вместо этого:

{
  "timeout": "5s",
  "query": {
    "bool": {
      "minimum_should_match": 1,
      "should": [
        {
          "terms": {
            "rgtnRelt.reltRcptIdI": [
              "9175",
              "9844",
              "0075",
              "7678"
            ]
          }
        },
        {
          "term": {
            "_id": {
              "value": "9175-9844-0075-7678"
            }
          }
        }
      ],
      "adjust_pure_negative": true,
      "boost": 1
    }
  }
}

Или вот так:

{
  "timeout": "5s",
  "query": {
    "bool": {
      "minimum_should_match": 1,
      "should": [
        {
          "bool": {
            "must": [
              {
                "term": {
                  "rgtnRelt.reltRcptIdI": {
                    "value": "9175",
                    "boost": 1
                  }
                }
              },
              {
                "term": {
                  "rgtnRelt.reltRcptIdI": {
                    "value": "9844",
                    "boost": 1
                  }
                }
              },
              {
                "term": {
                  "rgtnRelt.reltRcptIdI": {
                    "value": "0075",
                    "boost": 1
                  }
                }
              },
              {
                "term": {
                  "rgtnRelt.reltRcptIdI": {
                    "value": "7678",
                    "boost": 1
                  }
                }
              }
            ]
          }
        },
        {
          "term": {
            "_id": {
              "value": "9175-9844-0075-7678"
            }
          }
        }
      ],
      "adjust_pure_negative": true,
      "boost": 1
    }
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...