{"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-ba91c4ef7d8491a7ef74.js","sourcesContent":["import * as React from 'react'\n  /* @jsx mdx */\nimport { mdx } from '@mdx-js/react';\n/* @jsx mdx */\n\nimport DefaultLayout from \"/Users/evan/GitHub/incubator-superset_preset/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":""}