Mein Ziel ist es, Filmempfehlungen System zu bauen.Elastische Film Empfehlung basierend auf Benutzer likes
Ich habe 2 Arten:
myMovies
Beispieldokument:
{
"_index": "mymovies",
"_type": "mymovie",
"_id": "1",
"_score": 1,
"_source": {
"title" : "Funny title is here"
"genre" : "Comedy"
"movieViews" : 901142
}
}
Benutzer
Beispieldokument:
{
"Name" : "Doni de brun",
"moviesLiked": [122,185,231,292,1]
}
Erste Frage: Wie können die Genres für jeden Film eines Benutzers extrahiert werden?
Zweite Frage: Ich habe viel über Aggregationen, signifikante Begriffe und Scoring gelesen, aber immer noch bin ich ein wenig verwirrt wann wann was zu verwenden.
Ich realisiere, dass der Aufbau eines effizienten Empfehlungssystems hängt von meinen Bedürfnissen ab, aber immer noch: Sollte ich die Genres extrahieren, und dann nach Genre und den meisten MovieViews suchen? Oder vielleicht custom_scoring für diese Art von System?
danke dafür, das klarer zu machen. Kannst du meine erste Frage mit einer verschachtelten Abfrage beantworten? – ohadinho
in Bezug auf dieses Beispiel aus elastischen docs: GET/my_index/Blogpost/_search { "Abfrage": { "Bool": { "Muss": [ { "Spiel": { "title": "Eier" }}, { "verschachtelt": { "Pfad": "Kommentare", "Abfrage": { "Bool": { "must": [{ "match": { "comments.name" : "john"}}, { "match": { "comments.age": 28}} ] }}}} ] }}} In meinem Fall, Blick auf "Pfad", wie ich "STEP OUT" zu MyMovies Index? – ohadinho
Ich bin ein wenig verwirrt von Ihrer Frage hier. Was meinst du mit "treten" in den mymovies index?Wenn Sie diese Abfrage für diesen Index ausführen, gibt es kein "Aussteigen". Ihre verschachtelten Felder befinden sich immer noch in demselben Index. Sie befinden sich nur in einem Dokument, das vor den Suchergebnissen verborgen ist, es sei denn, Sie verwenden die Abfrage '' 'nested''' wie Sie. Um nach verschachtelten und nicht verschachtelten Feldern zu suchen, tun Sie Folgendes: '' '" query ": {" bool ": {" muss ": [" match ": {" topField ":" a "}, {" nested ": .. }, {"anotherTopLevelField": "b"} ... '' 'Dadurch werden Ergebnisse zurückgegeben, die zwei Feldern der obersten Ebene und allen in der verschachtelten Abfrage enthaltenen Feldern entsprechen. –