2016-02-05 21 views
5

Ho 2 indici nella mia configurazione Elasticsearch.Come eseguire una query negativa di join in ES

  • index_a
  • index_b

index_a ha un campo location e hanno circa 1000 documenti in cui come index_b ha un campo city e hanno circa 600 documenti.

voglio scoprire tutto il locations da index_a che non sono nel campo city in index_b. Quale domanda dovrei fare per ottenere quanto sopra?

+1

Si eseguono due query (selezionare tutto da index_b, quindi eseguire la ricerca su index_a). Elasticsearch non è in grado di "unire" in alcun modo due indici in una singola query e preferisce piuttosto avere dati denormalizzati, ** o ** usa relazioni 'nested' o parent-child. –

+0

Come detto da @AndreiStefan, questo potrebbe essere gestito meglio a livello di applicazione. – JVXR

+0

http://stackoverflow.com/questions/29799207/is-it-possible-to-compare-two-fields-from-different-types-on-a-query-dsl – CodeNotFound

risposta

3

si esegue due query: selezionare "tutte le informazioni necessarie" da index_b, quindi eseguire la ricerca su index_a utilizzando il "info" dal index_b.

Elasticsearch non è in grado di "unire" in alcun modo due indici in una singola query e preferisce piuttosto avere dati denormalizzati o utilizzare relazioni nidificate o parent-child.

Problemi correlati