Lucene Query String Elasticsearch "inférieur ou égal à" [URI Search]
sur tant de sites web ils enseignent comment interroger des données D'Elasticsearch en utilisant interrogation de gamme. Je voudrais interroger des données qui est inférieur ou égal à un certain nombre de Elasticsearch en utilisant le style Lucene chaîne de requête comme ceci.
fieldname:[* TO 100]
ou
fieldname:["*" TO "100"]
j'ai essayé d'autres formats mais aucun n'a fonctionné. Quelqu'un peut-il m'aider?
2 réponses
vous voudrez utiliser la syntaxe de chaîne de requête (http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/query-dsl-query-string-query.html) domaines combinés avec la recherche URI (http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/search-uri-request.html)
portées
les plages peuvent être spécifiées pour les champs date, numérique ou chaîne. Inclusif les fourchettes sont indiquées entre crochets [min. à max] et exclusif gammes avec crochets bouclés {min à 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.
URI Search
Recherche URI Search Request Body Search Search Shards API Search Dimensions Du Modèle Agrégations Suggestions Contexte Suggestion Multi-Recherche API Count API Validate API Explain API Percolator More Like This API Indice de référence
une requête de recherche peut être exécutée uniquement en utilisant une URI en fournissant les paramètres de la demande. Toutes les options de recherche ne sont pas exposées lorsque exécuter une recherche en utilisant ce mode, mais il peut être pratique pour les "curl tests"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 égal à 100.
curl -XPOST "http://hostname:9200/index/try/_search" -d'
{
"query": {
"range": {
"FieldName": {
"lte" : 100
}
}
}
}'
PHP API client
array(
'query' => array(
'range' => array(
'FieldName' => array(
array("lte" => 100)
)
)
)
);
pour les requêtes plus.. consulter
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..!