Почему индексация elasticsearch работает так странно? - PullRequest
0 голосов
/ 12 июля 2020

Я пытался проиндексировать некоторые данные с помощью поиска elasti c и столкнулся со странным поведением.

Если мой код:

import requests
#data = {'key': 'value'}
data = {'v': 'pf'}
#data = generate_document()
print(data)
headers = {'Content-type': 'application/json', 'Accept': 'text/plain'}
r = requests.post('http://localhost:9200/qa/_doc', data=json.dumps(data), headers=headers)
print(r.status_code)

, я получаю 201 в качестве ответа code.

Но если у меня data = {'va': 'pf'}, по какой-то причине я получаю 400 код состояния.

Почему происходят эти странные вещи?

В основном я хочу случайным образом сгенерируйте data и проиндексируйте его. Большую часть времени выдает 400. Но обычные вещи вроде data = {"key": "value"} работают.

Ответы [ 2 ]

1 голос
/ 12 июля 2020

Вероятно, код состояния 400 может иметь несколько причин:

  1. может быть вызвано моим сопоставлением. Dynami c, установленным на строгое
  2. , может быть вызвано превышением 1000 полей в индекс.

Могут быть и другие.

1 голос
/ 12 июля 2020

Попробуйте:

import requests
#data = {'key': 'value'}
data = {'v': 'pf'}
#data = generate_document()
print(data)
headers = {'Content-type': 'application/json', 'Accept': 'text/plain'}
r = requests.post('http://localhost:9200/qa/_doc', json=data, headers=headers)
...