web-dev-qa-db-fra.com

Requête basée sur URI Elasticsearch avec opérateur AND

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*"
27
ram

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*"
21
dadoonet

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 %2Bet l'espace est %20, par conséquent, l'alternative serait

  _search?q=%2Bprofiletype:student%20%2Busername:s*
17
0x4a6f4672

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*
4
Nanhe Kumar

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'
1
Avi Chalbani