Запрос Elasticsearch по определенному индексу

Я уже искал это с 2 дней. Я использую модуль chrome для проверки, чтобы проверить свои запросы, но не могу определить, на каком индексе он должен искать. Поэтому мои запросы ищут по всем индексам, и это непросто использовать.

Я пробовал следующие синтаксисы:

GET _search
{
    "query": {
        "term": {
           "_index": {
              "value": "dev_events2"
           }
        }
    }

}

GET _search
{
    "_index": "dev_events2",
    "query": {
        "match_all" : {  }
    }

}

GET _search
{
    "index": "dev_events2",
    "query": {
        "match_all" : {  }
    }

}

С Уважением,

Бенджамин В.


Редактировать Я, наконец, нашел ответ: просто добавьте имя индекса в url для get: localhost: 9201/myIndexName

Ответы

Ответ 1

Вы также можете добавить индекс/тип в запрос GET/PUT/DELETE...:

GET index/type/_search
{
   "query": {
        "bool": {
            "must": [
                {
                    "term": {
                        ...
                    }
                }
            ]
        }
    }
}

Ответ 2

Heres curl пример того, что работает, и позволяет вам искать несколько индексов:

curl 'http://localhost:9200/myindex1,myindex2/_search?q=*'

Для одного конкретного индекса:

curl 'http://localhost:9200/myindex1/_search?q=*'

Найти имена индексов:

curl 'localhost:9200/_cat/indices'

И если вы хотите искать все индексы:

curl 'localhost:9200/_search?pretty'

Ответ 3

GET index_name/_search
{
    "query": {
        "match_all" : { }
    }
}

или указать тип индекса

GET index_name/index_type/_search
{
    "query": {
        "match_all" : { }
    }
}