Siamo in grado di cercare tutte le parole in una document.field specifico come questo:elasticsearch Trova tutte le parole dal documento nella query di ricerca
{ "query" : { "match" : { "title": { "query" : "Black Nike Mens", "operator" : "and" } } } }
Questa cercherà le parole Black
, Nike
e Mens
nel campo title
in modo tale che vengano restituiti solo quei documenti che avranno TUTTE queste parole nel campo title
.
Ma quello che sto cercando di fare è un po 'diverso.
Desidero cercare in modo tale che se tutte le parole del campo title
del documento sono presenti nella query di ricerca, restituirà tale documento.
Ad es.
Supponiamo che ci sia un documento con title : "Nike Free Sparq Mens White"
nel database elasticsearch
ora se cerco con un query : "Nike Free Sparq 09 - Mens - White/Black/Varsity Red"
allora dovrebbe tornare a questo documento, perché esistono tutte le parole le document.title nella mia domanda
ma se cerco con un query : "Nike Free Lebron - Mens - White/Black"
allora non dovrebbe restituire il documento perché la mia domanda ha la parola mancante Sparq
questo è una sorta di ricerca inversa-e-operatore
È possibile? Se sì, allora come?
Dai un'occhiata a questo link. Troverai la tua risposta :) http: // StackOverflow.it/questions/26001002/elastic-search-difference-between-term-match-phrase-and-query-string – betto86
grazie per l'aiuto @ betto86, non ha risposto alla mia domanda ma mi ha aiutato su cose più correlate. –
Anche se hai postato una soluzione, voglio anche conoscere una soluzione più pulita. – akai