2014-06-18 13 views
7

Ho installato Elasticsearch con 1 cluster a 4 nodi. Numero di frammenti per indice: 1; Numero di repliche per indice: 3Diversi risultati Elasticsearch per la stessa query

Quando chiamo una semplice query come la seguente più volte ottengo risultati diversi (diverse visite totali e diversi primi 10 documenti):

http://localhost:9200/index_name/_search?q=term 

dati diversi su ogni frammento ? Mi piace avere tutti i frammenti aggiornati. Cosa posso fare?

Questo è il risultato di/_cluster/salute:

{ 
    "cluster_name" : "secret", 
    "status" : "green", 
    "timed_out" : false, 
    "number_of_nodes" : 4, 
    "number_of_data_nodes" : 4, 
    "active_primary_shards" : 24, 
    "active_shards" : 96, 
    "relocating_shards" : 0, 
    "initializing_shards" : 0, 
    "unassigned_shards" : 0 
} 

Come soluzione temporanea ricostruisco l'indice attraverso pneumatico gemma Rubino: ModelName.rebuild_index

Ma ho bisogno di una soluzione a lungo termine.

+0

più dettagli alla tua configurazione sarebbe bello. Alcune informazioni mancanti qui sono per esempio numero di repliche per indice, sarebbe anche bello sapere il numero di frammenti per nodo. –

+0

Numero di frammenti per indice: 1 Numero di repliche per indice: 3 Da dove viene il numero di frammenti per nodo? Non riesco a vederlo nel mio elasticsearch.yml. – Murdoch

+0

Siamo spiacenti, è stato shard per indice. Vedendo quelli, inoltre, non capisco davvero perché tu abbia un problema con questo, per essere onesti. –

risposta

1

Questo perché non è stato specificato l'ordine sort e size. Pertanto, ogni volta che si esegue una query, si ottengono casualmente i primi 10 record come predefinito: size per il set di risultati del server elasticsearch è 10.

È possibile aggiungere l'ordinamento in modo seguente con l'arricciatura,

curl -XPOST 'localhost:9200/_search' -d '{ 
"query" : { 
    ... 
    }, 
    "sort" : [ 
    {"price" : {"order" : "asc", "mode" : "avg"}} 
    ] 
}' 

Controllare here per per ulteriori informazioni appositamente from e size con specie che è il più gran parte utilizzato per l'impaginazione.

aggiornamento:

Anche se ordinamento predefinito è score DESC a volte non funziona quando i record non hanno _score rilevanti, come da http://www.elasticsearch.org/guide/en/elasticsearch/guide/current/_sorting.html#_sorting

+2

Non dovrei avere hit totali diversi ogni volta anche senza specificare il tipo e la dimensione. Quando non si specifica sort, quindi ottengo l'ordinamento predefinito preferito che è "score DESC". – Murdoch

+1

'punteggio DESC' è corretto, ma il problema è quando due record hanno lo stesso punteggio. –

+0

controlla questo http://www.elasticsearch.org/guide/en/elasticsearch/guide/current/_sorting.html quando i record non hanno un punteggio significativo inizia ad annusare. –

0

This question mi ha aiutato, come la risposta dice,

Uno dei possibili motivi potrebbe essere IDF distribuito, per impostazione predefinita Elastic utilizza IDF locale su ciascun frammento, per risparmiare alcune prestazioni che porteranno a diversi idfs su tutto il cl uster.

ES doc here

Problemi correlati