Comment spécifier l'opération AND dans une requête basée sur l'URI? Je cherche quelque chose comme:
http://localhost:9200/_search?q="profiletype:student AND username:s*"
Selon la documentation, cela devrait fonctionner comme vous l'avez décrit. Voir http://www.elasticsearch.org/guide/reference/query-dsl/query-string-query.html
Cela dit, vous pouvez également utiliser les éléments suivants:
http://localhost:9200/_search?q="+profiletype:student +username:s*"
Pour recherche URI dans ElasticSearch, vous pouvez utiliser soit l'opérateur AND profiletype:student AND username:s
, comme vous dites mais sans guillemets:
_search?q=profiletype:student AND username:s*
Vous pouvez également définir l'opérateur par défaut sur AND
_search?q=profiletype:student username:s*&default_operator=AND
Ou vous pouvez utiliser le +
opérateur pour les termes qui doivent être présents, c'est-à-dire que l'on utiliserait +profiletype:student +username:s
comme chaîne de requête. Cela ne fonctionne pas sans l'encodage URL, cependant. Dans le codage d'URL +
est %2B
et l'espace est %20
, par conséquent, l'alternative serait
_search?q=%2Bprofiletype:student%20%2Busername:s*
Vous pouvez essayer la ligne ci-dessous.
http://localhost:9200/_search?q=profiletype:student%20AND%20username:s*
http://localhost:9200/_search?q=profiletype:student AND username:s*
j'ai dû combiner l'opérateur par défaut et le signe + pour le faire fonctionner
curl -XGET 'localhost:9200/apm/inventory/_search?default_operator=AND&q=tenant_id:t2+_all:node_1'