Ho un problema interessante in Elasticsearch. Durante l'esecuzione di ricerche restituisce json non valido, in modo tale che quando provo a eseguire, JSON.parse(response)
provoca un errore di analisi (Node.js).
Ecco come si presentano i dati di risposta:
{
"took":5,
"timed_out":false,
"_shards": {
"total":5,
"successful":5,
"failed":0
},
"hits": {
"total":28,
"max_score": 1.1264253,
"hits": [
{
"_index": "myindex",
"_type": "v1",
"_id":"AUsTvTc0HrKvNpcAkwza",
"_score": 1.1264253,
"_source": {
"term":"Value"
},
},
{
"_index": "myindex",
"_type": "v1",
"_id":"BRxvTMggf5NTMnxwzalF",
"_score": 0.1328153,
"_source": {
"term":"Other Value"
},
}
]
}
}
Come noterai dopo il _source
proprietà c'è una virgola, anche se è l'ultima proprietà in quell'oggetto.
Per poter analizzare questo devo eseguire il seguente codice:
var json = response.replace(/,s+}/g, "}");
json = JSON.parse(json);
Quindi analizzerà, ma questo è semplicemente un cerotto. Quello che non riesco a capire è PERCHÉ Elasticsearch sta restituendo il mio JSON in quel modo?
Ogni aiuto è molto apprezzato!
Eric
risposte:
0 per risposta № 1Penso che questo sia un problema simile a questo È un bug noto e appare quando si indicizza erroneamente il documento JSON. La correzione qui sarebbe quella di rimuovere quel documento e indicizzarlo nuovamente correttamente.