2014-09-16 5 views
9

Sto cercando di indicizzare un campo json nella ricerca elastica, ho dato a mappatura esterna che questo campo dovrebbe essere trattato come stringa e non json, anche l'indicizzazione non è necessaria per esso, quindi non c'è bisogno di analizzarlo. La mappatura per questo sta seguendoArchiviare il campo Json come stringa nella ricerca elastica?

"json_field": { 
    "type": "string", 
    "index": "no" 
}, 

Sempre al momento della indicizzazione, questo campo è sempre analizzato e per questo sto ottenendo MapperParsingException

in breve Come possiamo memorizzare JSON come stringa nel elasticsearch senza essere analizzato?

risposta

14

finalmente capito, se si desidera memorizzare JSON come una stringa senza analizzarla, la mappatura dovrebbe essere come questo

"json_field": { 
    "type": "object", 
    "enabled" : false 
}, 

Il flag abilitato permette di disattivare l'analisi e l'indicizzazione completamente un oggetto con nome. Questo è utile quando una parte del documento JSON contiene JSON arbitrario che non dovrebbe essere indicizzato, né aggiunto alla mappatura.