Подтвердить что ты не робот

Lucene Query String Elasticsearch "меньше или равно" [URI Search]

На многих сайтах они учат тому, как запрашивать данные из Elasticsearch, используя запрос диапазона. Я хотел бы запросить данные, которые меньше или равны определенному числу из Elasticsearch, с использованием строки запроса Lucene Style, как это.

fieldname:[* TO 100] 

или

fieldname:["*" TO "100"]

Я пробовал в других форматах, но никто из них не работал. Кто-нибудь может мне помочь?

4b9b3361

Ответ 1

Вам может понадобиться использовать синтаксис строки запроса (https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-query-string-query.html) в сочетании с поиском по URI (https://www.elastic.co/guide/en/elasticsearch/reference/current/search-uri-request.html)

Изменяется

Диапазоны могут быть указаны для даты, числовых или строковых полей. Включающие диапазоны указываются в квадратных скобках [min TO max] и исключительные диапазоны в фигурных скобках {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.

URI Поиск

Поиск URI Запрос на поиск Тело поиска Шаблоны поиска API-интерфейсы поиска Шаблоны Фрагменты Агрегаты Предлагает Контекст Предлагает Multi Search API Count API Validate API Объясните API Percolator Еще как этот эталонный тест API

Поисковый запрос может быть выполнен исключительно с использованием URI путем предоставления параметров запроса. Не все параметры поиска отображаются при выполнении поиска с использованием этого режима, но это может быть удобно для быстрых "тестов скручивания". Вот пример:

$ curl -XGET
'http://localhost:9200/twitter/tweet/_search?q=user:kimchy'

Ответ 2

Я думаю, вы хотите запросить документы с менее чем 100.

 curl -XPOST "http://hostname:9200/index/try/_search" -d'
{
 "query": {
    "range": {
      "FieldName": {
         "lte" : 100
      }
    }
  }
}'

Клиент API PHP

array(
'query' => array(
    'range' => array(
        'FieldName' => array(
            array("lte" => 100)
        )
    )
  )
);

для большего количества запросов. refer

Формат запроса, который вы просили..!

curl -XPOST "http://hostname:9200/index/type/_search?q=FieldName:[* to 100]"

HOpe помогает..!