1. API reference
  2. Welcome
    1. Component overview
    2. Quick start
    3. System requirements
    4. Troubleshooting
    5. Managing license keys
  3. Connecting to Data Source
    1. JSON
      1. Connecting to JSON
      2. Connecting to JSON using the Data Compressor
      3. Data types in JSON
    2. CSV
      1. Connecting to CSV
      2. Connecting to CSV using the Data Compressor
      3. Data types in CSV
    3. Database
      1. Connecting to SQL databases
      2. Connecting to other databases
      3. Connecting to a database with Node.js
      4. Connecting to a database with .NET
      5. Connecting to a database with .NET Core
      6. Connecting to a database with Java
      7. Connecting to a database with PHP
    4. Microsoft Analysis Services
      1. Connecting to Microsoft Analysis Services
      2. Getting started with the Accelerator
      3. Installing the Accelerator as a Windows service
      4. Referring the Accelerator as a DLL
      5. Configuring the authentication process
      6. Configuring a secure HTTPS connection
      7. Troubleshooting
    5. Pentaho Mondrian
      1. Connecting to Pentaho Mondrian
      2. Getting started with the Accelerator
      3. Configuring Mondrian roles
      4. Configuring username/password protection
      5. Configuring a secure HTTPS connection
      6. Troubleshooting
    6. Connecting to Elasticsearch
  4. Security
    1. Security in Flexmonster
    2. Security aspects when connecting to an OLAP cube
      1. The data transfer process
      2. Data security
      3. Data access management
    3. Security aspects when connecting to a database
      1. The data transfer process
      2. Data access management
  5. Configuring report
    1. What is a report
    2. Data source
    3. Slice
    4. Options
    5. Number formatting
    6. Conditional formatting
    7. Set the report for the component
    8. Get the report from the component
    9. Date and time formatting
    10. Configuring global options
    11. Export and print
    12. Calculated values
    13. Custom sorting
  6. Integration with frameworks
    1. Available tutorials
    2. Integration with AngularJS (v1.x)
    3. Integration with Angular
    4. Integration with React
    5. Integration with Webpack
    6. Integration with ASP.NET
    7. Integration with jQuery
    8. Integration with JSP
    9. Integration with TypeScript
    10. Integration with RequireJS
    11. Integration with PhoneGap
  7. Integration with charts
    1. Integration with Highcharts
    2. Integration with Google Charts
    3. Integration with FusionCharts
    4. Integration with any charting library
  8. Customizing
    1. Customizing toolbar
    2. Customizing appearance
    3. Customizing context menu
    4. Localizing component
  9. Updating to the latest version
    1. Updating to the latest version
    2. Release notes
    3. Migration guide from 2.6 to 2.7
    4. Migration guide from 2.5 to 2.6
    5. Migration guide from 2.4 to 2.5
    6. Migration guide from 2.3 to 2.4
    7. Migration guide from 2.2 to 2.3
    8. Documentation for older versions
Table of contents

Connecting to Elasticsearch

This article illustrates how to build a report based on an Elasticsearch data source. 

Step 1: Embed the component into your web page

Set up an empty component in your HTML page. If Flexmonster is not yet embedded – return to Quick start. Your code should look similar to the following example:

<div id="pivotContainer">The component will appear here</div>
<script src="flexmonster/flexmonster.js"></script>
<script>
	var pivot = new Flexmonster({
		container: "pivotContainer",
		toolbar: true,
		licenseKey: "XXXX-XXXX-XXXX-XXXX-XXXX"
	});
</script>

Step 2: Enable cross-origin resource sharing (CORS)

By default, the browser prevents JavaScript from making requests across domain boundaries. CORS allows web applications to make cross-domain requests. To enable CORS, open elasticsearch.yml and add the following configuration:

http.cors.enabled: true
http.cors.allow-origin: "*"
http.cors.allow-credentials: true
http.cors.allow-headers: "X-Requested-With, Content-Type, Content-Length, Authorization"

To allow connection to the Elasticsearch server from outside the localhost, you need to open an appropriate port in the firewall. The default one is 9200, but it may be different depending on the configuration in the elasticsearch.yml file.

Step 3: Configure the report with your own data

Now it’s time to configure the pivot table on the web page. Let’s create a minimal report for this (replace host and index parameters with your specific values):

 var pivot = new Flexmonster({
container: "pivotContainer",
toolbar: true,
report: {
"dataSource": {
"dataSourceType": "elasticsearch",
/* the host for connection */
"host": "https://olap.flexmonster.com:9200",
/* the name of Elasticsearch index to connect */
"index": "fm-product-sales"
}
},
licenseKey: "XXXX-XXXX-XXXX-XXXX-XXXX"
});

Launch the web page from a browser — there you go! A pivot table is embedded into your project. Check out the example on JSFiddle.

Configure index mapping

In the example above, the fields like @timestamp and @version are displayed in the Field List. They can be hidden by setting the mapping property:

 
var pivot = new Flexmonster({
container: "pivotContainer",
toolbar: true,
report: {
"dataSource": {
"dataSourceType": "elasticsearch",
/* the host for connection */
"host": "https://olap.flexmonster.com:9200",
/* the name of Elasticsearch index to connect */
"index": "fm-product-sales",
/* additional setting to configure index mapping */
"mapping": {
"@timestamp": {
"visible": false
},
"@version": {
"visible": false
},
"host": {
"visible": false
},
"message": {
"visible": false
},
"path": {
"visible": false
}
}

}
},
licenseKey: "XXXX-XXXX-XXXX-XXXX-XXXX"
});

Check out the example on JSFiddle.