Эластичный поиск, сортировка по логическому полю

#elasticsearch

#elasticsearch

Вопрос:

Я хочу отсортировать свой список по истинному значению в поле под названием trusted.

Я обнаружил, что опция сортировки не поддерживает логическую сортировку.

Как я могу этого добиться?

Комментарии:

1. Вам следует попробовать фильтр терминов. Прочитайте документы: elastic.co/guide/en/elasticsearch/reference/current /…

Ответ №1:

Если я правильно понял вашу проблему, я попытался выполнить локальный тест на ES версии 7.8, и я ввел следующие данные в свой индекс:

«содержимое»: «Это тест», «доверенный»: true

«содержимое»: «Это новый тест», «доверенный»: верно

«содержимое»: «Это не тест», «доверенный»: false

Вот отображение индекса:

 "mappings" : {
  "properties" : {
    "content" : {
      "type" : "text",
      "fields" : {
        "keyword" : {
          "type" : "keyword",
          "ignore_above" : 256
        }
      }
    },
    "trusted" : {
      "type" : "boolean"
    }
  }
}
  

Вот запрос, когда "order" : "desc" :

 {
  "sort": [
    {
      "trusted": {
        "order": "desc"
      }
    }
  ]
}
  

Ответ:

 "hits" : [
  {
    "_index" : "boolean-sorting",
    "_type" : "_doc",
    "_id" : "B-YleHQBsTCl1BZvrFdA",
    "_score" : null,
    "_source" : {
      "content" : "This is a test",
      "trusted" : true
    },
    "sort" : [
      1
    ]
  },
  {
    "_index" : "boolean-sorting",
    "_type" : "_doc",
    "_id" : "CeYleHQBsTCl1BZvtFdJ",
    "_score" : null,
    "_source" : {
      "content" : "This is a new test",
      "trusted" : true
    },
    "sort" : [
      1
    ]
  },
  {
    "_index" : "boolean-sorting",
    "_type" : "_doc",
    "_id" : "DOYleHQBsTCl1BZvvVfl",
    "_score" : null,
    "_source" : {
      "content" : "This is not a test",
      "trusted" : false
    },
    "sort" : [
      0
    ]
  }
]
  

Когда "order":"asc" ответ:

 "hits" : [
  {
    "_index" : "boolean-sorting",
    "_type" : "_doc",
    "_id" : "DOYleHQBsTCl1BZvvVfl",
    "_score" : null,
    "_source" : {
      "content" : "This is not a test",
      "trusted" : false
    },
    "sort" : [
      0
    ]
  },
  {
    "_index" : "boolean-sorting",
    "_type" : "_doc",
    "_id" : "B-YleHQBsTCl1BZvrFdA",
    "_score" : null,
    "_source" : {
      "content" : "This is a test",
      "trusted" : true
    },
    "sort" : [
      1
    ]
  },
  {
    "_index" : "boolean-sorting",
    "_type" : "_doc",
    "_id" : "CeYleHQBsTCl1BZvtFdJ",
    "_score" : null,
    "_source" : {
      "content" : "This is a new test",
      "trusted" : true
    },
    "sort" : [
      1
    ]
  }
]
  

Ссылки:
https://www.elastic.co/guide/en/elasticsearch/reference/current/sort-search-results.html

Пожалуйста, дайте мне знать, если я неправильно ответил, я буду рад помочь.

Комментарии:

1. Я могу подтвердить, что это все еще проблема с ES 7.9. Кто-нибудь знает исправление для этого?