Qualcuno potrebbe consigliarmi su come eseguire il punteggio personalizzato in ElasticSearch quando si cerca una serie di parole chiave da una serie di parole chiave?ElasticSearch Custom Scoring con array
Per esempio, diciamo che v'è una serie di parole chiave in ogni documento, in questo modo:
{ // doc 1
keywords : [
red : {
weight : 1
},
green : {
weight : 2.0
},
blue : {
weight: 3.0
},
yellow : {
weight: 4.3
}
]
},
{ // doc 2
keywords : [
red : {
weight : 1.9
},
pink : {
weight : 7.2
},
white : {
weight: 3.1
},
]
},
...
E voglio ottenere punteggi per ogni documenti sulla base di una ricerca che soddisfa le parole chiave contro questa matrice:
{
keywords : [
red : {
weight : 2.2
},
blue : {
weight : 3.3
},
]
}
Ma invece di determinare se corrispondono, voglio usare un algoritmo di punteggio molto specifico:
Segnare un singolo campo è abbastanza facile, ma non so come gestirlo con gli array. qualche idea?
Ciao @Aleksi Asikainen, hai trovato una soluzione a questo (usando elasticsearch)? –
Paura di no, ma al giorno d'oggi ElasticSearch ha un migliore supporto per il punteggio delle funzioni, che ritengo possa essere sufficiente per ottenere questo risultato: http://www.elastic.co/guide/en/elasticsearch/reference/0.90/query-dsl- function-score-query.html –