ElasticSearch Query с сортировкой не работает Elasti c - PHP Клиент; - PullRequest
0 голосов
/ 06 апреля 2020

У меня проблема в запросе Elasticsearch с использованием клиента php. У меня есть документы в моем эластичном поиске, в которых есть поле «Избранное», я хочу получить результаты в том порядке, где «Feautred = 1». Но результаты идут, поскольку это не в отсортированном порядке. Мой запрос выглядит следующим образом:

$params = [
      'index'=>'us_data_master',
      'body'  => [
          'from'=>$from,
           'size'=>20,
          'query' => [
              'bool'=>[
                  'must'=>[
                      [
                          'terms' => [
                               'city_code.keyword' => $citi_arr 
                           ]
                      ],
                      [
                          'term'=>['state_code.keyword'=>strtoupper($state)]
                      ],
                      [
                          'multi_match'=>[
                                  'query'=>'*'.$cate.'*',
                                  'fields'=>['name','contact_no','zip_code','city_code']
                           ]
                      ]
                   ],
                   'must_not'=>[
                             'term'=>['contact_no.keyword'=>'0']

                   ]

               ]

           ]
      ]
 ];
 $params['body']['sort']['featured'] = ['order'=>'desc'];

отображение выглядит следующим образом

{


"mapping": {
    "_doc": {
      "properties": {
        "@timestamp": {
          "type": "date"
        },
        "@version": {
          "type": "text",
          "fields": {
            "keyword": {
              "type": "keyword",
              "ignore_above": 256
            }
          }
        },
        "address": {
          "type": "text",
          "fields": {
            "keyword": {
              "type": "keyword",
              "ignore_above": 256
            }
          }
        },
        "city_code": {
          "type": "text",
          "fields": {
            "keyword": {
              "type": "keyword",
              "ignore_above": 256
            }
          }
        },
        "contact_no": {
          "type": "text",
          "fields": {
            "keyword": {
              "type": "keyword",
              "ignore_above": 256
            }
          }
        },
        "date_added": {
          "type": "date"
        },
        "date_updated": {
          "type": "date"
        },
        "featured": {
          "type": "long"
        },
        "id": {
          "type": "long"
        },
        "location_id": {
          "type": "long"
        },
        "main_cate": {
          "type": "long"
        },
        "name": {
          "type": "text",
          "fields": {
            "keyword": {
              "type": "keyword",
              "ignore_above": 256
            }
          }
        },
        "slug": {
          "type": "text",
          "fields": {
            "keyword": {
              "type": "keyword",
              "ignore_above": 256
            }
          }
        },
        "source": {
          "type": "text",
          "fields": {
            "keyword": {
              "type": "keyword",
              "ignore_above": 256
            }
          }
        },
        "state_code": {
          "type": "text",
          "fields": {
            "keyword": {
              "type": "keyword",
              "ignore_above": 256
            }
          }
        },
        "status": {
          "type": "long"
        },
        "zip_code": {
          "type": "text",
          "fields": {
            "keyword": {
              "type": "keyword",
              "ignore_above": 256
            }
          }
        }
      }
    }
  }
}

что не так?

...