Sur de nombreux sites Web, ils apprennent à interroger les données d'Elasticsearch à l'aide d'une requête de plage. Je voudrais interroger des données inférieures ou égales à un certain nombre d'Elasticsearch en utilisant la chaîne de requête de style Lucene comme celle-ci.
fieldname:[* TO 100]
ou
fieldname:["*" TO "100"]
J'ai essayé dans d'autres formats mais aucun n'a fonctionné. Est-ce que quelqu'un peut m'aider?
Vous souhaiterez utiliser la syntaxe de chaîne de requête ( https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-query-string-query.html ) plages combinées avec la recherche d'URI ( https://www.elastic.co/guide/en/elasticsearch/reference/current/search-uri-request.html )
Gammes
Les plages peuvent être spécifiées pour les champs date, numérique ou chaîne. Les plages inclusives sont spécifiées avec des crochets [min TO max] et les plages exclusives avec des crochets {min TO max}.
All days in 2012: date:[2012/01/01 TO 2012/12/31] Numbers 1..5 count:[1 TO 5] Tags between alpha and omega, excluding alpha and omega: tag:{alpha TO omega} Numbers from 10 upwards count:[10 TO *] Dates before 2012 date:{* TO 2012/01/01} Curly and square brackets can be combined: Numbers from 1 up to but not including 5 count:[1..5} Ranges with one side unbounded can use the following syntax: age:>10 age:>=10 age:<10 age:<=10 Note To combine an upper and lower bound with the simplified syntax, you would need to join two clauses with an AND operator: age:(>=10 AND < 20) age:(+>=10 +<20) The parsing of ranges in query strings can be complex and error prone. It is much more reliable to use an explicit range filter.
Recherche d'URI
Rechercher l'URI Demande de recherche Corps Rechercher Rechercher Éclats de recherche Modèle de recherche Facettes Agrégations Suggestions Contexte Suggestion API Multi Search API Count API Valider API Explain API Percolator Plus comme ceci API Benchmark
Une demande de recherche peut être exécutée uniquement à l'aide d'un URI en fournissant des paramètres de demande. Toutes les options de recherche ne sont pas exposées lors de l'exécution d'une recherche à l'aide de ce mode, mais cela peut être pratique pour des "tests de boucle" rapides. Voici un exemple:
$ curl -XGET
'http://localhost:9200/Twitter/Tweet/_search?q=user:kimchy'
Je pense que vous voulez interroger les documents avec moins de 100.
curl -XPOST "http://hostname:9200/index/try/_search" -d'
{
"query": {
"range": {
"FieldName": {
"lte" : 100
}
}
}
}'
Client API PHP
array(
'query' => array(
'range' => array(
'FieldName' => array(
array("lte" => 100)
)
)
)
);
pour plus de requêtes .. se référer
Le format de requête que vous avez demandé ..!
curl -XPOST "http://hostname:9200/index/type/_search?q=FieldName:[* to 100]"
J'espère que ça aide..!