Сортировать родительский список пользователей по внутренним попаданияasticsearch - PullRequest
0 голосов
/ 01 января 2019

У меня 200000 пользователей вasticsearch, и у каждого пользователя есть свой почтовый ящик.Теперь предположим, что три пользователя user A, B и C. Пользователь A и пользователь C отправляют сообщение пользователю B. Поэтому, когда пользователь B выбирает список пользователей изasticsearch, тогда пользователи A и C должны быть в верхней части списка пользователей, потому что A и B наиболеепоследнее отправленное сообщение пользователю B. Я пишу свой запросasticsearch, который приведен ниже

{
  "_source": [
    "db_id",
    "username",
    "message_privacy"
  ],
  "from": "0",
  "size": "40",
  "sort": [{"messages_received.created_at" : "desc"}],
  "query": {
    "bool": {
      "must": [
        {
           "term":{
             "type":"user"
           }
        },
        {
          "has_child": {
            "type": "messages_received",
            "inner_hits": {
              "sort": [
                {
                  "created_at": "desc"
                }
              ],
              "size": 1,
              "_source": [
                "id",
                "user_id",
                "object_id",
                "created_at"
              ]
            },
            "query": {
              "bool": {
                "must": [
                  {
                    "term": {
                      "object_id": "u-5"
                    }
                  }
                ]
              }
            }
          }
        }
      ]
    }
  }
}

Но когда я запускаю запрос, он выдает мне ошибку

{"error": {"root_cause ": [{" type ":" query_shard_exception "," reason ":" Не найдено сопоставления для [messages_received.created_at] для сортировки по "," index_uuid ":" 5jsM1khYRrC0cjWbRjsx5A "," index ":" trending "}],

Я ищу эту проблему в Google, но не нашел подходящего решения для моего сценария.

Mapping

{
 "type": {
            "type": "join",
            "eager_global_ordinals": true,
            "relations": {
              "post": [
                "comments",
                "place",
                "media",
                "views",
                "likes",
                "post_box"
              ],
              "box": "posts",
              "user": [
                "user_views",
                "user_likes",
                "followers",
                "post",
                "blocked",
                "followings",
                "box",
                "block",
                "notifications",
                "messages_received",
                "messages_sent"
              ],
              "posts": "posts_views"
            }
          }}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...