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.6.tar.gz (17.9 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.6-py3-none-any.whl (15.8 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: es-viewer-1.2.6.tar.gz
  • Upload date:
  • Size: 17.9 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.6.tar.gz
Algorithm Hash digest
SHA256 97ff84385aa17bd1320d5edb5c5aa95a7501dbf5ef45880ee4f0b76b5ea3f4f6
MD5 40216693628e2e551628af0ab8cc865e
BLAKE2b-256 7d902ed7f28e6465355473baf7f4e7e01bdb2cdd743a3114986ec064570cce74

See more details on using hashes here.

Provenance

The following attestation bundles were made for es-viewer-1.2.6.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.6-py3-none-any.whl.

File metadata

  • Download URL: es_viewer-1.2.6-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.6-py3-none-any.whl
Algorithm Hash digest
SHA256 91a73a65db2d8675d91e239195069ffb27d55df311748f6cce7a0e6386a630f7
MD5 4d6cb67db9268519d7abcd5e171a937b
BLAKE2b-256 698fc149528c4c0ef7b814b5110b757816f6a9164cd8bba346bcb0c2f98c8653

See more details on using hashes here.

Provenance

The following attestation bundles were made for es_viewer-1.2.6-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