2015-03-18 8 views

risposta

1

Ciò può essere ottenuto in due modi

  1. soluzione Index - Mentre l'indicizzazione aggiungere un campo aggiuntivo chiamato isDateSame e impostarlo per vero o falso Based sul valore di startDate e endDate. Quindi puoi facilmente fare una query basata su quel campo. Questa è la soluzione ottimizzata migliore
  2. Soluzione di script - Elasticsdearch conserva tutti i dati indicizzati nei dati di campo, che è più simile a un indice inverso inverso. Utilizzando lo script è possibile accedere a tutti i campi indicizzati e fare il confronto. Questo è abbastanza veloce ma non buono come il primo. È possibile utilizzare la seguente query per lo stesso
3

Elasticsearch supporta i filtri di script, che è possibile utilizzare in questo caso. More Info Qualcosa di simile a questo è ciò che è necessario -

POST /<yourIndex>/<yourType>/_search? 
{ 
    "query": { 
     "filtered": { 
      "filter": { 
       "script": { 
        "script": "doc['startDate'].value == doc['endDate'].value" 
       } 
      } 
     } 
    } 
} 
Problemi correlati