Ich verwende Elasticsearch 1.7 und elastic4s DSL. Mein Problem ist, ich kann nicht hinzufügen und & oder Filter auf einem verschachtelten Dokument. Zum Beispiel, hier ist eine JSON Darstellung meiner Instanz Fallklasse Kandidat:Elasticsearch verschachtelte Filterung (elastic4s, scala)
{
"name": "Samy"
"interviews": [
{
"clientId": 0,
"stateId": "CANCELED",
},
{
"clientId": 1,
"stateId": "APPROVED"
}
]
Hier mein Filter:
def filtering(interviewAndCandidates: IntCand)(implicit user: PublicUser): Seq[FilterDefinition] = {
nestedFilter("interviews").filter(termFilter("clientId", user.id)) ::
List(or(interviewAndCandidates.interviews.map(state ⇒ nestedFilter("interviews").filter(termFilter("stateId", state)))))
}
Dann baue ich die Abfrage:
var request: SearchDefinition = search in "myIndex" -> "candidate" query {
filteredQuery query {
matchAllQuery
} filter {
and(filters)
}
}
Mit :
Das Problem ist, wenn ich auf IntCand Filter (List ("ABGEBROCHEN")) und clientId = 1, die Antwort zeigen Sie mir das Candidate (I filternde auf clientId und Interviews)