2014-09-03 11 views
5

C'è un modo per limitare un campo a un determinato numero di caratteri quando si ottengono risultati da Elasticsearch? So come limitare i risultati a uno specifico set di campi, ma non vedo come ottenere solo una parte dei dati. Vorrei ricevere solo i primi 100 caratteri per visualizzare un'anteprima dei dati e limitare l'I/O.Lunghezza del campo di limitazione durante la richiesta di Elasticsearch

Ho visto che l'evidenziazione offre l'opzione di impostare una dimensione del frammento, ma non sto necessariamente richiedendo nulla dal campo di cui voglio una sottostringa.

+3

Non penso che esista una funzione in es che ti permette di specificare una sottostringa di un campo. Ma puoi probabilmente indicizzare i primi 100 caratteri insieme al campo originale. È quindi possibile utilizzare il filtro di origine per escludere il campo originale in '_source' [ref here] (https://www.elastic.co/guide/en/elasticsearch/reference/current/search-request-source-filtering.html) . Oppure puoi anche escludere completamente il campo originale al momento dell'indice, [vedi qui] (https://www.elastic.co/guide/en/elasticsearch/reference/current/mapping-source-field.html#include-exclude) – foresightyj

risposta

0

Elasticsearch non offre tale opzione. Il modo ideale per raggiungere questo tipo di scenario è cambiare il modo in cui si indicizzano i dati e si può memorizzare uno snippet insieme ai campi di lunghezza estesa. (@foresightyj ha fornito buoni collegamenti per escludere/includere i campi all'indicizzazione/tempo di interrogazione)