2012-09-05 5 views
5

Ho query sfaccettate che funzionano con elasticsearch 0.19.9. Tuttavia vorrei tornare tutti gli aspetti che hanno un numero di> 0.elasticsearch numero di facet restituito

Secondo la documentazione dovrei essere in grado di:

{ 
    "query" : { 
     "match_all" : { } 
    }, 
    "facets" : { 
     "tag" : { 
      "terms" : { 
       "field" : "tag", 
       "all_terms" : true 
      } 
     } 
    } 

}

quanto ho capito, questo dovrebbe dare me tutto sfaccettature anche se il conteggio è 0.

Tuttavia, questo è ancora solo restituendo le prime 10 facce per conteggio. Qual è la dimensione predefinita. L'unica cosa che sembra influire sul numero di facet restituiti è in realtà l'impostazione "size" : N dove N è il numero di facet che verrà restituito.

Potrei impostarlo su un numero molto alto ma sembra che abbiack-ish.

Qualche idea su cosa potrei fare male?

risposta

4

Non stai facendo nulla di sbagliato. Hai capito bene! C'è un open issue su github per rendere i termini facet simili allo Terms Stats facet, che ti permette di impostare size = 0 per recuperare tutti i termini. Per ora devi solo usare un valore alto, che è un po 'complicato, sono d'accordo. D'altra parte fare attenzione a non restituire troppe voci!

+1

Grazie per il feedback ... Anche se non era quello che volevo sentire. –

+0

Penso che la domanda comune sia in realtà come filtrare i termini che hanno un conteggio maggiore di 0. cioè contare> 0, dopo aver fatto un termine facet. I termini facet danno il conteggio ma vogliamo anche filtrare i conteggi. –

3
{ 
    "query" : { 
     "match_all" : { } 
    }, 
    "facets" : { 
     "tag" : { 
      "terms" : { 
       "field" : "tag", 
       "size" : 2147483647, 
       "all_terms" : false 
      } 
     } 
    } 
} 

L'unico modo per rimuovere il "count: 0" è quello di mettere "all_terms" come falsa, e impostare il numero di dimensioni più in alto e impossibile come si può in l'istanza elasticsearch (l'esempio sopra è la il più grande valore firmato che un intero in PHP possa avere).

Potrebbe non essere il modo migliore, ma questo è l'unico approccio noto finora. Il filtro sfaccettature non funziona al momento (a meno che non abbiano aggiornato e migliorato Elasticsearch per farlo).

+1

Non ho troppi termini. Questo approccio ha funzionato perfettamente bene per me. I risultati della ricerca erano abbastanza veloci. Grazie! – anbiniyar