Skip to main content

A lightweight, cross-platform desktop GUI for Elasticsearch

Project description

PyQt Elasticsearch Viewer

Elasticsearch ES可视化客户端工具

下载地址

A simple, lightweight, cross-platform desktop GUI for browsing and managing Elasticsearch clusters.

This tool is a self-contained desktop application built with Python and PyQt6. It provides a user-friendly interface for performing common Elasticsearch operations like searching, creating, reading, updating, and deleting documents. It is designed to be minimal and portable, relying only on the requests library for communication with Elasticsearch, with no dependency on the official elasticsearch-py client.

image

(Note: Screenshot shows an earlier version; the final version includes more features like CRUD tabs and HTTPS options.)


✨ Features

  • Flexible Connectivity: Connect to any Elasticsearch cluster via HTTP or HTTPS.
  • Security Options:
    • Support for username/password (Basic) authentication.
    • Option to disable SSL certificate verification for connecting to clusters with self-signed certificates.
  • Powerful Search: A dedicated tab for writing and executing complex JSON-based Query DSL searches.
  • Full CRUD Functionality: A "Document CRUD" tab for easy single-document operations:
    • Get: Retrieve a document by its ID.
    • Index/Create: Create or update a document. Supports both user-defined and auto-generated IDs.
    • Update: Partially update a document using the _update API.
    • Delete: Remove a document by its ID.
  • Interactive Results Display: View results in a clear, expandable tree view that handles nested JSON structures gracefully.
  • User-Friendly:
    • Copy-Paste: Easily copy keys, values, or full key-value pairs from the results tree with Ctrl+C or a right-click menu.
    • Session Persistence: Automatically saves your last successful connection and query configuration, loading it on the next launch.
  • Lightweight & Cross-Platform:
    • Minimal dependencies: PyQt6 and requests.
    • Runs on Windows, macOS, and Linux.

🛠️ Installation

To get started, you need Python 3 and pip installed on your system.

  1. Clone the repository:

    git clone https://github.com/isee15/es-viewer
    cd es-viewer
    

    Alternatively, just download the main Python script (es_tool_final_corrected_copy.py or your preferred name).

  2. Create a requirements.txt file: Create a file named requirements.txt in the same directory with the following content:

    PyQt6
    requests
    
  3. Install dependencies: Open your terminal or command prompt in the project directory and run:

    pip install -r requirements.txt
    

🚀 Usage

  1. Run the application:

    python es_gui.py
    
  2. Connection Panel:

    • Fill in the Host, Port, and target Index.
    • Check Use HTTPS if your cluster uses SSL/TLS.
    • If using HTTPS with a self-signed certificate, you may need to uncheck Verify SSL Certificate.
    • Check Enable Authentication and fill in your credentials if your cluster requires them.
  3. Search Tab:

    • Write your full Elasticsearch Query DSL in the JSON editor.
    • Click Execute Search to run the query.
    • Results will be displayed in the tree view at the bottom.
  4. Document CRUD Tab:

    • Document ID: This field is required for Get, Update, and Delete operations. It is optional for Index/Create (if left blank, Elasticsearch will generate an ID).
    • Document Body:
      • For Index/Create, enter the full JSON content of the document.
      • For Update, enter an update payload (e.g., {"doc": {"field_to_update": "new_value"}}).
    • Click the corresponding button (Get, Index/Create, Update, Delete) to perform the action.
    • The result of the operation will be displayed in the tree view below.

⚙️ Configuration

The application automatically saves your settings to a configuration file upon a successful search operation.

  • File Location: The file is named .es_viewer_config.json and is stored in your user home directory (e.g., C:\Users\YourUser on Windows or /home/youruser on Linux).
  • Function: It stores the last used connection details, authentication state, and search query so you don't have to re-enter them every time you open the app.
  • Security Note: The password is saved in plain text in this file. This is a security risk for production environments. Please use with caution.

📜 License

This project is licensed under the MIT License. See the LICENSE file for details.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

es_viewer-1.2.0.tar.gz (16.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

es_viewer-1.2.0-py3-none-any.whl (14.7 kB view details)

Uploaded Python 3

File details

Details for the file es_viewer-1.2.0.tar.gz.

File metadata

  • Download URL: es_viewer-1.2.0.tar.gz
  • Upload date:
  • Size: 16.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.9

File hashes

Hashes for es_viewer-1.2.0.tar.gz
Algorithm Hash digest
SHA256 d44d1f1f1e20d469a0e72b3eb927913c76a360a83ccefab95c77b9969fd0d980
MD5 7824f86542d3b3a9f29c5a301f8c7964
BLAKE2b-256 dc4e3b6b00a1b5652bce071fa8fa09c6c419bb3eea662be21d417f1d5a72f501

See more details on using hashes here.

File details

Details for the file es_viewer-1.2.0-py3-none-any.whl.

File metadata

  • Download URL: es_viewer-1.2.0-py3-none-any.whl
  • Upload date:
  • Size: 14.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.9

File hashes

Hashes for es_viewer-1.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 efafaec32341065bb946040dfa54b4d878af4df2495479a46959be956f48f4c7
MD5 5156e203326ff27ccbf48d36c2c190c7
BLAKE2b-256 032589c95cd8cb7a9e13b35514279c18280912d14803553c1598af252733dced

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page