{"version":3,"sources":["webpack:///./src/pages/docs/Connecting to Databases/elasticsearch.mdx"],"names":["_frontmatter","layoutProps","MDXLayout","DefaultLayout","MDXContent","components","props","mdxType","isMDXComponent"],"mappings":"wPAMaA,G,UAAe,S,0OAE5B,IAKMC,EAAc,CAClBD,gBAEIE,EAAYC,IACH,SAASC,EAAT,GAGZ,IAFDC,EAEC,EAFDA,WACGC,EACF,8BACD,OAAO,YAACJ,EAAD,eAAeD,EAAiBK,EAAhC,CAAuCD,WAAYA,EAAYE,QAAQ,cAC5E,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-4c0ef478126119b12a0c.js","sourcesContent":["import * as React from 'react'\n  /* @jsx mdx */\nimport { mdx } from '@mdx-js/react';\n/* @jsx mdx */\n\nimport DefaultLayout from \"/Users/srinify/Documents/incubator-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 layoutProps = {\n  _frontmatter\n};\nconst MDXLayout = DefaultLayout;\nexport default function MDXContent({\n  components,\n  ...props\n}) {\n  return <MDXLayout {...layoutProps} {...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":""}