ElasticSearch : l'équivalent de l'opérateur dans ElasticSearch
Je suis en train d'essayer de trouver ElasticSearch requête équivalente à IN
\ NOT
en SQL.
Je sais que nous pouvons utiliser une chaîne de Requête requête avec plusieurs OU pour obtenir la même réponse, mais qui se termine avec beaucoup de OU de.
Quelqu'un peut-il partager l'exemple?
Vous devez vous connecter pour publier un commentaire.
Similaire à ce que Chris a suggéré dans un commentaire, l'analogue de remplacement pour
IN
est leconditions
filtre (requêtes impliquent de notation, ce qui peut améliorer la commande retournée).L'équivalent Elasticsearch 1.x filtre serait:
L'équivalent Elasticsearch 2.x+ filtre serait:
L'important, plats à emporter, c'est que le
terms
filtre (requête) à travailler sur des correspondances exactes. Il est implicitement uneor
opération, semblable àIN
.Si vous voulais de l'inverser, vous pouvez utiliser le pas de filtre, mais je suggère d'avoir recours au un peu plus détaillé
bool
/must_not
filtre (pour obtenir dans l'habitude de l'aidebool
/must
etbool
).Dans l'ensemble, la
bool
composé de la syntaxe de la requête est l'un des plus importants de filtres dans Elasticsearch, comme le sont lesterm
(singulier) etterms
filtres (au pluriel, comme illustré).1 termes
vous pouvez utiliser termes terme de la requête dans ElasticSearch qui agira comme DANS
termes de la requête est utilisée pour vérifier si la valeur correspond à l'une des valeurs de Tableau.
2 must_not
must_not peut être utilisé comme PAS dans ElasticSearch.
ex.
Aussi, si cela vous aide, vous pouvez également utiliser "existe" requête pour vérifier si le champ existe ou pas.
pour ex,
vérifier si le champ existe
vérifier si un champ n'existe pas
J'ai vu ce que vous avez demandé.
Et j'ai écrit le code source ci-dessous.
J'espère que cela vous aide à résoudre votre problème.
requête sql :
elastic search :