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?

21
demandé sur trooper 2014-05-15 13:27:19

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'
33
répondu John Petrone 2014-05-15 14:39:07

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..!

1
répondu BlackPOP 2014-05-16 04:06:36