Bonjour,
j'ai des données dans elasticsearch qui ressemblent à ça:
{
"took": 1,
"timed_out": false,
"_shards": {
"total": 1,
"successful": 1,
"skipped": 0,
"failed": 0
},
"hits": {
"total": 4,
"max_score": 1,
"hits": [
{
"_index": "doc_1",
"_type": "doc",
"_id": "1",
"_score": 1,
"_source": {
"id": "1",
"label": "Développeur",
"activity": [
{
"name": "immobilier",
"id": "1"
}
]
}
},
{
"_index": "doc_1",
"_type": "doc",
"_id": "2",
"_score": 1,
"_source": {
"id": "2",
"label": "Développeur",
"activity": [
{
"name": "informatique industriel",
"id": "2"
}
]
}
},
{
"_index": "doc_1",
"_type": "doc",
"_id": "3",
"_score": 1,
"_source": {
"id": "3",
"label": "Développeur",
"activity": [
{
"name": "photo de paysage",
"id": "3"
}
]
}
},
{
"_index": "doc_1",
"_type": "doc",
"_id": "4",
"_score": 1,
"_source": {
"id": "4",
"label": "Développeur",
"activity": []
}
}
]
}
}
ce que je cherche à faire c'est de prioriser les résultats, quand on cherche
- "Développeur" l'ordre n'est pas important
- "Développeur informatique" c'est le document 2 qui doit sortir en premier
là la priorisation est sur 2 champs mais on réalité j'ai plusieurs champs sur lesquels je dois faire la priorisation.
la requête que je fais:
GET job/_search
{
"query": {
"multi_match": {
"query": "Développur",
"type": "cross_fields",
"fields": [ "label^3", "activity.name^1" ]
}
}
}
Parmi les champs sur lesquels je dois faire la priorisation, c'est un champs contenant des coordonnées et je dois prioriser, pas filtrer, par les plus proches à une coordonnée.
quelqu'un à une idée pour pouvoir une priorisation qui prend en compte des champs de type différents: text, date, boolean, coordonnées, ...
Merci