Почему одно из полей ответа имеет значение поля "_id"? - PullRequest
0 голосов
/ 23 ноября 2018

Я работаю над Elasticsearch Java API и столкнулся со странной проблемой.

ниже хранятся данные:

"_index": "my_index",
"_type": "SEC",
"_id": "1111111111111111",
"_score": 0,
"_source": {
  "LOG_NO": 2222222222222222
}

И я вызываю запрос, как показано ниже:

QueryBuilder queryBuilder = QueryBuilders.boolQuery().filter(query);
request.setQuery(queryBuilder);
SearchResponse searchResponse = request.get();

Это ответ на поиск:

"_index":"my_index",
"_type":"SEC",
"_id":"1111111111111111",
"_score":null,
"_source": {
    "LOG_NO":1111111111111111,
}

Как видите, «LOG_NO» ответа должно быть «2222222222222222», а не «1111111111111111».

theПараметр 'query' имеет значение QueryBuilder, а значение указано ниже:

{
  "bool": {
    "must": [
      {
        "range": {
          "LOG_GEN_TIME": {
            "from": "2018-11-01 00:00:00+09:00",
            "to": "2018-11-01 23:59:59+09:00",
            "include_lower": true,
            "include_upper": true,
            "boost": 1
          }
        }
      },
      {
        "bool": {
          "must": [
            {
              "term": {
                "ASSET_IP": "xx.xxx.xxx.xxx"
              }
            },
            {
              "term": {
                "DST_PORT": "xx"
              }
            }
          ]
        }
      }
    ],
    "adjust_pure_negative": true,
    "boost": 1
  }
}

Я не понимаю, в чем проблема.

Любые комментарии приветствуются, спасибо.

- Отредактировано для @ Val

    "_index": "my_index",
    "_type": "SEC",
    "_id": "9197340043548295192",
    "_score": null,
    "_source": {
      "ASSET_IP": "xx.xxx.xx.xxx",
      "LOG_NO": 9197340043548295200,
      "LOG_GEN_TIME": "2018-11-01 23:10:53+09:00",
      "SRC_IP": "xx.xxx.xx.xxx",
      "SRC_PORT": xx,
      "DST_IP": "xx.xxx.xx.xxx",
      "DST_PORT": xx,
      "DESCRIPTION": "log",
      "DST_NATION_CD": "USA",
    }
  }

Это полный документ, который я ожидаю вернуть, и только поле "LOG_NO" создает проблему.

1 Ответ

0 голосов
/ 26 ноября 2018

Я обнаружил, что проблема в JavaScript.

Поскольку JS не может выразить параметр, превышающий диапазон числа, он был преобразован.

Моей настройкой ES было целочисленное поле "LOG_NO", заданное как индекс, а "_id""является строковым выражением" LOG_NO ".

Так что не было никаких проблем, за исключением того, что целое число выглядит в Интернете по-другому.

Надеюсь, что другие не будут испытывать ту же проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...