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

You can install es-viewer directly from PyPI.

  1. Install with pip: Make sure you have Python 3 and pip installed, then run:

    pip install es-viewer
    
  2. Run the application: After installation, you can run the application from your terminal:

    es-viewer
    

Alternative: Running from Source

If you prefer to run the application directly from the source code:

  1. Clone the repository:

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

    pip install PyQt6 requests
    
  3. Run the application:

    python es_gui.py
    

🚀 Usage

  1. Run the application: If you installed via pip, run es-viewer in your terminal. If running from source, use 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.3.tar.gz (17.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.3-py3-none-any.whl (15.8 kB view details)

Uploaded Python 3

File details

Details for the file es-viewer-1.2.3.tar.gz.

File metadata

  • Download URL: es-viewer-1.2.3.tar.gz
  • Upload date:
  • Size: 17.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for es-viewer-1.2.3.tar.gz
Algorithm Hash digest
SHA256 93fb1a5ba2ece5c2eabf0e0c9640f4aae5798c7bb4e9cbfb3735ecf0d621ff06
MD5 2d764ec337f7b999abcff1ae6ef3c118
BLAKE2b-256 9e1163976effcde806c97f718f8c186bef35176b83d76a17a09322026aaf9083

See more details on using hashes here.

Provenance

The following attestation bundles were made for es-viewer-1.2.3.tar.gz:

Publisher: publish-to-pypi.yml on isee15/es-viewer

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

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

File metadata

  • Download URL: es_viewer-1.2.3-py3-none-any.whl
  • Upload date:
  • Size: 15.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for es_viewer-1.2.3-py3-none-any.whl
Algorithm Hash digest
SHA256 0db778d3e9fa4280eb4261b41e4469b6399f5ef4b6b46f1904ae19ba4b8b93d1
MD5 6b25df0c9d3033f21f3c6c69f21af5ea
BLAKE2b-256 14076cfcd6c82b9e6131edf0dafd277a7330c6acbf125053cd007c6fddc200be

See more details on using hashes here.

Provenance

The following attestation bundles were made for es_viewer-1.2.3-py3-none-any.whl:

Publisher: publish-to-pypi.yml on isee15/es-viewer

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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