Elasticsearch REST Query

To create a new data set from an existing Elasticsearch REST connection, follow the steps below:

  1. If you have not yet configured the database connection, see Elasticsearch REST. Then proceed with the steps below.

    If you see the ‘Create Visualization’ dialog box, press the ‘Close’ button close to continue with the steps below (recommended).

    200

    You can also press Create a Query to open the ‘New Data Worksheet’ dialog box, where you can select the query you wish to create. This allows you to skip the ‘Add’ button new objects and proceed to the next steps.

  2. Open the Data Worksheet that will contain the data. (See Create a Data Worksheet or Edit a Data Worksheet.)

  3. Press the ‘Add’ button new objects, and select ‘Elasticsearch REST Query’ tabular subquery.

    elasticsearchRESTQuery1

    This opens the ‘Elasticsearch REST Query’ dialog box.

    dataSourceElasticQuery1

  4. Enter the ‘URL Suffix’ and a desired ‘JSON Path’. See JSONPath - XPath for JSON for information about the JSON Path syntax.

    Example: JSON Path

    Consider the data at https://jsonplaceholder.typicode.com/users. The JSONPath string

    $.[*][?(@.id < 4)]

    retrieves all fields (because none are specified) from all objects where the id field value is less than 4. The JSONPath string

    $.[*][?(@.id < 4)].email

    retrieves just the email field from all objects where the id field value is less than 4.

  5. Optional: Select ‘Expand Arrays’ to expand a record that contains an array into multiple records.

    Example: Expand Arrays…

    Consider the following JSON:

    {
        "id": 1,
        "items": [
            {
                "id": 1,
                "name": "Object 1",
                "list1": [ "Item 1.1.1", "Item 1.1.2" ],
                "list2": [ "Item 1.2.1", "Item 1.2.2" ]
            },
            {
                "id": 2,
                "name": "Object 2",
                "list1": [ "Item 2.1.1", "Item 2.1.2" ],
                "list2": [ "Item 2.2.1", "Item 2.2.2" ]
            }
        ]
    }

    If ‘Expand Arrays’ is enabled (and ‘JSON Path’ is $ or blank), all arrays will be fully expanded in parallel, as shown below:

    expandArrays2

    To selectively expand only certain portions of the result, use the ‘Expanded Array Path’ field to specify the portion of the JSON path on which arrays should be expanded. For example, set ‘Expanded Array Path’ to items.list1 to expand the items and list1 arrays. (The top level array is always expanded.)

    expandArrays3

  6. Use the ‘Filter’ field to restrict the result set. See the Elastic Documentation for more information about the filter specification.

  7. Optional: If you have more than a one data source of this type defined, you can select an alternate data source from the ‘Data Source’ menu.

  8. Press OK. This creates a new data block in the Data Worksheet.

  9. Optional: Right-click on the data block, and select ‘Properties’ from the context menu. Note: You can also access menu options from the ‘More’ button (menu horizontal) in the mini-toolbar. This opens the ‘Table Properties’ panel. In the ‘Name’ field, enter a name for the data block, and press ‘OK’. (See Modify a Column for information about how to rename columns.

    Names must be unique without respect to case (e.g., "num1" is the same name as "Num1").
  10. Press the ‘Save’ button save in the toolbar to save the Data Worksheet.

You can now do pipeline operations on this data, as described in Prepare Your Data, or you can proceed to create Dashboards based on this Data Worksheet. See Visualize Your Data for information about how to construct a Dashboard.