Ho memorizzato molti articoli di notizie da feed RSS da diverse fonti in un indice di elasticsearch. Nel momento in cui faccio una query di ricerca, mi verrà restituito un sacco di articoli di notizie simili per una query, perché gli stessi argomenti di notizie vengono coperti da molte fonti RSS.Qual è un modo conveniente per raggruppare i documenti con elasticsearch?
Invece quello che mi piacerebbe fare è restituire solo un articolo di notizie da un gruppo di articoli allo stesso argomento. Quindi, in qualche modo, devo riconoscere, quali articoli riguardano lo stesso argomento, raggruppare questi documenti e restituire solo l'articolo "migliore" da un tale cluster.
Quale sarebbe il modo più conveniente per affrontare questo problema? Posso in qualche modo utilizzare l'API di elasticsearch come questa? Oppure il plug-in https://github.com/carrot2/elasticsearch-carrot2 è la strada da percorrere? O semplicemente non esiste un modo conveniente e devo implementare in qualche modo la mia versione di http://en.wikipedia.org/wiki/K-means_clustering o http://en.wikipedia.org/wiki/Non-negative_matrix_factorization per raggruppare i miei documenti?
Non capisco cosa sia così complicato. Devi definire le tue regole per decidere quale articolo è migliore dell'altro. Per questo, si assegnano le partite di conseguenza (se si trova una determinata parola nei campi X o se questa parola e quella parola sono trovate ecc.) E si restituisce la partita con il miglior punteggio. Questo è l'intero scopo di Elasticsearch: ricerca di testo. E ti offre molti strumenti per interrogare, valutare, manipolare il punteggio, sintonizzarlo ecc. In modo che alla fine tu ottenga ciò di cui hai bisogno. Ma è necessario definire le regole per "abbinare" l'articolo "migliore". –