эластичный поиск 7, увеличение на целое значение - PullRequest
0 голосов
/ 26 сентября 2019

Я пытаюсь увеличить поиск по полю «create» (целое число / отметка времени), но всегда сталкиваюсь с

"{"error":{"root_cause":[{"type":"parsing_exception","reason":"Unknown key for a START_OBJECT in [script].","line":1,"col":181}],"type":"parsing_exception","reason":"Unknown key for a START_OBJECT in [script].","line":1,"col":181},"status":400}"

Без 'script' запрос работает нормально.Но у меня заканчиваются идеи, как правильно написать этот скрипт.Есть идеи?

 return [
            'index' => 'articles_' . $this->system,
            'body'  => [
                'size' => $this->size,
                'from' => $this->start,

                'sort'  => [
                    $this->order => 'desc',
                ],
                'query' => [
                    'query_string' => [
                        'query'            => $this->term,
                        'fields'           => ['title^5', 'caption^3', 'teaser^2', 'content'],
                        'analyze_wildcard' => true,
                    ],
                    'script' => [
                        'script' => [
                            'lang' => 'painless',
                            'source' => "doc['@created'].value / 100000",
                        ],
                    ],
                ],
            ],

        ];

РЕДАКТИРОВАТЬ: обновленный запрос, но все еще сталкивается с "{" error ": {" root_cause ": [{" type ":" parsing_exception "," reason ":" [query_string]неправильный запрос, ожидаемый [END_OBJECT], но найденный [FIELD_NAME] "," line ": 1," col ": 171}]," type ":" parsing_exception "," reason ":" [query_string] неправильный запрос, ожидаемый [END_OBJECT] но найдено [FIELD_NAME] "," line ": 1," col ": 171}," status ": 400}"

1 Ответ

0 голосов
/ 27 сентября 2019

Скрипт не является отдельным атрибутом.Это должно быть частью bool.Когда у вас есть несколько фильтров, они должны быть в обязательном / обязательном порядке / фильтре в bool

'body'  => [
                'size' => $this->size,
                'from' => $this->start,

                'sort'  => [
                    $this->order => 'desc'
                ],
                'query' => [
                      'bool' => [
                          'must' =>[
                              'query_string' => [
                                'query'    => $this->term,
                                'fields'   => ['title^5', 'caption^3',                        'teaser^2', 'content'],
                                'analyze_wildcard' => true
                              ],
                             'script' => [
                                'script' => [
                                  'lang' => 'painless',
                                  'source' => "doc['@created'].value / 100000"
                                ]
                              ]
                          ]
                      ]
                ]
            ]

Выше может быть проблема синтаксиса скобок (я не смог проверить это), структура запроса правильная

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