Se reindexing è un'opzione, sarebbe la migliore per cambiare la mappatura e marchio questo campo come not_analyzed
"your_field" : { "type": "string", "index" : "not_analyzed" }
È possibile utilizzare multi field type se mantenere una versione analizzata del campo è desiderato:
"your_field" : {
"type" : "multi_field",
"fields" : {
"your_field" : {"type" : "string", "index" : "analyzed"},
"untouched" : {"type" : "string", "index" : "not_analyzed"}
}
}
In questo modo, è possibile continuare a utilizzare your_field
nelle query, durante l'esecuzione di ricerche sfaccettatura utilizzando your_field.untouched
.
In alternativa, se questo campo è memorizzato, è possibile utilizzare una sfaccettatura campo script invece:
"facets" : {
"term" : {
"terms" : {
"script_field" : "_fields.your_field.value"
}
}
}
Come l'ultima risorsa, se questo campo non viene memorizzato, ma fonte di record viene memorizzato nell'indice, è può provare questo:
"facets" : {
"term" : {
"terms" : {
"script_field" : "_source.your_field"
}
}
}
La prima soluzione è la più efficiente. L'ultima soluzione è la meno efficiente e potrebbe richiedere molto tempo su un indice di grandi dimensioni.
Potrebbe aggiornare la questione con un esempio _short_ dei dati e un esempio di _short_ della query che stai facendo, quindi è più informativo per gli utenti di venire qui da Ricerche di Google, ecc? – karmi