2013-02-27 11 views
6

ho una richiesta utilizzando termini che sembra:termini della query di ricerca elastiche e segnando

{ 
"query": { 
    "bool": { 
    "should": [ 
     { 
     "terms": { 
      "subjects.id": [ 
      1, 
      2, 
      3 
      ], boost: 3 
     } 
     }, 
     { 
     "terms": { 
      "qualification_type.id": [ 
      3, 
      5 
      ], boost: 2 
     } 
     } 
    ] 
    } 
} 

mi funziona abbastanza bene, ma attribuisce un punteggio migliore ai documenti che corrispondono a tre soggetti rispetto al documento corrispondente un solo soggetto.

La mia domanda è: esiste un modo per forzare il punteggio di essere lo stesso se c'è uno o molti partita sugli argomenti?

Grazie in anticipo!

+0

questo può aiutare qualcuno, l'ho trovato molto più tardi, dopo avere questa stessa domanda http://www.elasticsearch.org/blog/understanding-query-then-fetch-vs-dfs-query- poi-fetch/ –

risposta

9

È possibile convertire le query termini in filtri e avvolgerli in constant score query. Per esempio:

{ 
    "query": { 
     "bool": { 
      "should": [{ 
       "constant_score": { 
        "filter": { 
         "terms": { 
          "subjects.id": [1, 2, 3] 
         } 
        }, 
        boost: 3 
       } 
      }, { 
       "constant_score": { 
        "filter": { 
         "terms": { 
          "qualification_type.id": [3, 5] 
         } 
        }, 
        boost: 2 
       } 
      }] 
     } 
    } 
} 
+0

Sì, ci ho pensato, e l'ho provato. Ma poi non posso impostare due differenze differenti, giusto? Modifico l'esempio per cercare di essere più esplicito a riguardo. – momo

+0

Puoi avvolgere ogni filtro termini nella propria interrogazione constant_score. Ho aggiunto un esempio. – imotov

+0

Ehi, grazie mille, è stato un grande aiuto! Ho provato a giocare con custom_score facendo cose simili ma non ho mai avuto questa idea. Forse mi potrebbe indicare la documentazione dove avrei potuto trovare qualche esempio del genere? Ho cercato più o meno e non ho trovato qualcosa vicino. – momo

Problemi correlati