{"version":3,"sources":["webpack:///./src/pages/docs/Connecting to Databases/elasticsearch.mdx"],"names":["_frontmatter","MDXLayout","DefaultLayout","MDXContent","components","props","mdxType","isMDXComponent"],"mappings":"wPAMaA,G,UAAe,S,0OAE5B,IAKMC,EAAYC,IACH,SAASC,EAAT,GAGZ,IAFDC,EAEC,EAFDA,WACGC,EACF,8BACD,OAAO,YAACJ,EAAD,eAAeI,EAAf,CAAsBD,WAAYA,EAAYE,QAAQ,cAC3D,iBAAQ,CACN,GAAM,iBADR,iBAGA,gFAEE,gBAAO,CACL,KAAQ,mDACR,WAAc,KAFhB,uBAFF,KAOA,iFACA,uBAAK,mBAAU,CACX,WAAc,OADb,0DAIL,qBAAG,qBAAY,CACX,WAAc,KADf,gBAGH,uBAAK,mBAAU,CACX,WAAc,OADb,2DAIL,8JAEA,uBAAK,mBAAU,CACX,WAAc,OADb,wBAIL,8EACA,uBAAK,mBAAU,CACX,WAAc,OADb,8CAIL,0HACA,uBAAK,mBAAU,CACX,WAAc,OADb,gIASL,wF,wOAKJH,EAAWI,gBAAiB","file":"component---src-pages-docs-connecting-to-databases-elasticsearch-mdx-99ffb2a011b4ccb4fe3b.js","sourcesContent":["import * as React from 'react'\n  /* @jsx mdx */\nimport { mdx } from '@mdx-js/react';\n/* @jsx mdx */\n\nimport DefaultLayout from \"/Users/max/code/superset/docs/node_modules/gatsby-theme-docz/src/base/Layout.js\";\nexport const _frontmatter = {};\n\nconst makeShortcode = name => function MDXDefaultShortcode(props) {\n  console.warn(\"Component \" + name + \" was not imported, exported, or provided by MDXProvider as global scope\");\n  return <div {...props} />;\n};\n\nconst MDXLayout = DefaultLayout;\nexport default function MDXContent({\n  components,\n  ...props\n}) {\n  return <MDXLayout {...props} components={components} mdxType=\"MDXLayout\">\n    <h2 {...{\n      \"id\": \"elasticsearch\"\n    }}>{`Elasticsearch`}</h2>\n    <p>{`The recommended connector library for Elasticsearch is\n`}\n      <a {...{\n        \"href\": \"https://github.com/preset-io/elasticsearch-dbapi\",\n        \"parentName\": \"p\"\n      }}>{`elasticsearch-dbapi`}</a>\n      {`.`}</p>\n    <p>{`The connection string for Elasticsearch looks like this:`}</p>\n    <pre><code {...{\n        \"parentName\": \"pre\"\n      }}>{`elasticsearch+http://{user}:{password}@{host}:9200/\n`}</code></pre>\n    <p><strong {...{\n        \"parentName\": \"p\"\n      }}>{`Using HTTPS`}</strong></p>\n    <pre><code {...{\n        \"parentName\": \"pre\"\n      }}>{`elasticsearch+https://{user}:{password}@{host}:9200/\n`}</code></pre>\n    <p>{`Elasticsearch as a default limit of 10000 rows, so you can increase this limit on your cluster or\nset Superset’s row limit on config`}</p>\n    <pre><code {...{\n        \"parentName\": \"pre\"\n      }}>{`ROW_LIMIT = 10000\n`}</code></pre>\n    <p>{`You can query multiple indices on SQL Lab for example`}</p>\n    <pre><code {...{\n        \"parentName\": \"pre\"\n      }}>{`SELECT timestamp, agent FROM \"logstash\"\n`}</code></pre>\n    <p>{`But, to use visualizations for multiple indices you need to create an alias index on your cluster`}</p>\n    <pre><code {...{\n        \"parentName\": \"pre\"\n      }}>{`POST /_aliases\n{\n    \"actions\" : [\n        { \"add\" : { \"index\" : \"logstash-**\", \"alias\" : \"logstash_all\" } }\n    ]\n}\n`}</code></pre>\n    <p>{`Then register your table with the alias name logstasg_all`}</p>\n\n  </MDXLayout>;\n}\n;\nMDXContent.isMDXComponent = true;\n      "],"sourceRoot":""}