asticsearch с безболезненным скриптом для возврата лишних полей - PullRequest
0 голосов
/ 19 сентября 2019

Я следую этому примеру https://www.compose.com/articles/how-to-script-painless-ly-in-elasticsearch/, где ОБА ОРИГИНАЛЬНЫЕ поля плюс вычисляемое поле (some_scores) представлены в результирующем документе.

{
    "_index": "sat",
    "_type": "scores",
    "_id": "AV3CYR8JFgEfgdUCQSON",
    "_score": 1,
    "_source": {
        "cds": 1611760130062,
        "rtype": "S",
        "sname": "American High",
        "dname": "Fremont Unified",
        "cname": "Alameda",
        "enroll12": 444,
        "NumTstTakr": 298,
        "AvgScrRead": 576,
        "AvgScrMath": 610,
        "AvgScrWrit": 576,
        "NumGE1500": 229,
        "PctGE1500": 76.85,
        "year": 1516
    },
    "fields": {
        "some_scores": [
            1152
        ]
    }
}

Сейчас я делаю _поиск со следующим телом поста

{
  "query": {
    "match_all": {}
  },
  "script_fields": {
    "some_scores": {
      "script": {
          "lang": "painless",
        "inline": "\"hello\""
      } 
    }
  }
    }

, но результаты, которые я получаю, НЕ содержат исходные поля;он содержит только поле тестирования, которое я жестко запрограммировал на привет.Что-то не так с моим запросом?

"hits": [
        {
            "_index": "abcIndex",
            "_type": "data",
            "_id": "id_00000025",
            "_score": 1.0,
            "fields": {
                "some_scores": [
                    "hello"
                ]
            }
        }]

1 Ответ

1 голос
/ 20 сентября 2019

Вам нужно явно передать _source ": [" * "] при использовании поля скрипта. Мне не удалось найти причину для этого, похоже на какую-то оптимизацию.

{
  "_source": ["*"],
  "query": {
    "match_all": {}
  },
  "script_fields": {
    "some_scores": {
      "script": {
        "lang": "painless",
        "inline": "doc['authorization']+\"hello\""
      }
    }
  }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...