---
title: Elasticsearch
hide_title: true
sidebar_position: 18
version: 1
---

## Elasticsearch

The recommended connector library for Elasticsearch is
[elasticsearch-dbapi](https://github.com/preset-io/elasticsearch-dbapi).

The connection string for Elasticsearch looks like this:

```
elasticsearch+http://{user}:{password}@{host}:9200/
```

**Using HTTPS**

```
elasticsearch+https://{user}:{password}@{host}:9200/
```

Elasticsearch as a default limit of 10000 rows, so you can increase this limit on your cluster or
set Superset’s row limit on config

```
ROW_LIMIT = 10000
```

You can query multiple indices on SQL Lab for example

```
SELECT timestamp, agent FROM "logstash"
```

But, to use visualizations for multiple indices you need to create an alias index on your cluster

```
POST /_aliases
{
    "actions" : [
        { "add" : { "index" : "logstash-**", "alias" : "logstash_all" } }
    ]
}
```

Then register your table with the alias name logstasg_all

**Time zone**

By default, Superset uses UTC time zone for elasticsearch query. If you need to specify a time zone,
please edit your Database and enter the settings of your specified time zone in the Other > ENGINE PARAMETERS:

```
{
    "connect_args": {
        "time_zone": "Asia/Shanghai"
    }
}
```

Another issue to note about the time zone problem is that before elasticsearch7.8, if you want to convert a string into a `DATETIME` object,
you need to use the `CAST` function,but this function does not support our `time_zone` setting. So it is recommended to upgrade to the version after elasticsearch7.8.
After elasticsearch7.8, you can use the `DATETIME_PARSE` function to solve this problem.
The DATETIME_PARSE function is to support our `time_zone` setting, and here you need to fill in your elasticsearch version number in the Other > VERSION setting.
the superset will use the `DATETIME_PARSE` function for conversion.
