ich verwende Elasticsearch 2.3Elasticsearch 2.x-Abfrage für Tag und sortieren Ergebnisse nach Tag weigth
Ich habe einen Index der Bücher. Jedes Buch hat ein Tag und jedes Tag hat ein Gewicht. Ich möchte alle Bücher erhalten, die das gewünschte Tag haben, sortiert nach Tag Gewicht.
zum Beispiel:
PUT book/book/0
{
"name": "book 0",
"tags": [
{"t": "comedy", "w": 30},
{"t": "drama","w": 20},
]
}
PUT book/book/1
{
"name": "book 1",
"tags": [
{"t": "comedy", "w": 10},
{"t": "drama","w": 5},
{"t": "other","w": 50},
]
}
PUT book/book/2
{
"name": "book 2",
"tags": [
{"t": "comedy", "w": 5},
{"t": "drama","w": 30},
]
}
PUT book/book/3
{
"name": "book 3",
"tags": [
{"t": "comedy", "w": 5},
{"t": "other","w": 30},
]
}
Ich möchte für alle Bücher suchen, die Tags Komödie und Drama hat. das Ergebnis Reihenfolge ist:
- Buch 0 (20 + 30)
- Buch 2 (30 + 5)
- Buch 1 (10 + 5)
UPDATE: i möchte um nur Bücher zurückzugeben, die mit beiden Tags übereinstimmen (und nur nach angeforderten Tags sortieren). Wenn ich nach "Drama" und "Komödie" suche, werden nur Bücher zurückgegeben, die beide Tags haben (in diesem Fall Buch 0, Buch 1, Buch 2), sortiert nach den angeforderten Tag-Gewichten.
wie kann ich diese bekommen? ein beliebiges Beispiel für eine Abfrage?
danke @Christoph Wurm. das einzige Problem, das ich jetzt habe, ist, dass dies alle Bücher, die Komödie oder Drama in Tags zurückgeben wird. aber ich brauche alle Bücher, die Komödie und Drama in Tags. kannst du helfen? –
@EyalCh Ja, ich habe es in die Antwort eingefügt. –
danke das funktioniert !. nur um zu verstehen: in ihrer aktualisierten antwort sehe ich nicht "score_mode": "summe". wie es die Punktzahl summerize? ist es standardmäßig?wenn ich es in einer anderen Punktzahl (wie AVG?) Vielen Dank. –