Attualmente sto provando a migrare un'applicazione basata su solr a elasticsearch.
Ho questa domanda lucene
((
name:(+foo +bar)
OR info:(+foo +bar)
)) AND state:(1) AND (has_image:(0) OR has_image:(1)^100)
Per quanto ho capito, questa è una combinazione di clausole MUST combinate con booleani OR:
"Ottieni tutti i documenti contenenti (foo AND barra nel nome) OPPURE (foo AND barra nelle informazioni). Dopo quel filtro i risultati per condizione state = 1 e aumenta i documenti che hanno un'immagine."
Ho cercato di utilizzare una query booleata con MUST ma non riesco a ottenere booleana O nelle clausole must. Ecco cosa ho:
GET /test/object/_search
{
"from": 0,
"size": 20,
"sort": {
"_score": "desc"
},
"query": {
"bool": {
"must": [
{
"match": {
"name": "foo"
}
},
{
"match": {
"name": "bar"
}
}
],
"must_not": [],
"should": [
{
"match": {
"has_image": {
"query": 1,
"boost": 100
}
}
}
]
}
}
}
Come puoi vedere, DEVONO mancare le condizioni per "informazioni".
Qualcuno ha una soluzione?
Grazie mille.
** AGGIORNARE **
Ho aggiornato la mia query elasticsearch e mi sono sbarazzato di quel punteggio di funzione. Il mio problema di base esiste ancora.