Sto tentando di utilizzare ElasticSearch per l'analisi, in particolare per tracciare "i contenuti migliori" per il CMS Rails fatto a mano. Il requisito è un po 'più complicato di tenere un contatore per ogni pezzo di contenuto. Non entrerò nella profondità del problema adesso, poiché non riesco a far funzionare le basi.Problemi con il conteggio delle faccette
Il mio problema è questo: sto usando gli sfaccettature ei conteggi non sono quello che mi aspetto che siano. Per esempio:
Query:
{"facets":{"el_ids":{"terms":{"field":"el_id","size":1,"all_terms":false,"order":"count"}}}}
Risultato:
{"el_ids":{"_type":"terms","missing":0,"total":16672,"other":16657,"terms":[{"term":"quis","count":15}]}}
Ok, grande, il pezzo di contenuti con ID "quis" ha avuto 15 colpi e dal momento che il order
è count
, dovrebbe sii il mio primo pezzo di contenuto. Ora consente di ottenere i primi 5 pezzi di contenuto.
Query:
{"facets":{"el_ids":{"terms":{"field":"el_id","size":5,"all_terms":false,"order":"count"}}}}
Risultato (solo la sfaccettatura):
[
{"term":"qgz9","count":26},
{"term":"quis","count":15},
{"term":"hnqn","count":15},
{"term":"higp","count":15},
{"term":"csns","count":15}
]
Eh? Quindi il contenuto w/id "qgz9" ha avuto più hit con 26? Perché non è stato il primo risultato nella prima query?
Ok, ora prendiamo la top 100.
Query:
{"facets":{"el_ids":{"terms":{"field":"el_id","size":100,"all_terms":false,"order":"count"}}}}
risultati (solo la sfaccettatura):
[
{"term":"qgz9","count":43},
{"term":"difc","count":37},
{"term":"zryp","count":31},
{"term":"u65r","count":31},
{"term":"sxsi","count":31},
...
]
Così ora "qgz9" dispone di 43 colpi, invece di 26? Come può essere? Posso assicurarti che non sta accadendo nulla in background modificando l'indice. Se ripeto queste domande, ottengo gli stessi risultati.
Mentre ripeto questo processo di aumento della dimensione del risultato, i conteggi continuano a cambiare e nuovi ID di contenuto emergono in alto. Qualcuno può spiegarmi che cosa sto sbagliando o dove la mia comprensione di come funziona è difettosa?
Questo non è ancora il modo migliore per riuscirci. Sharding è una caratteristica molto importante di Elasticsearch. Potresti perdere un sacco di prestazioni se consideri solo 1 frammento. – eliasah