{"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-700c379b13469b23994b.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 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":""}