Socket
Socket
Sign inDemoInstall

elasticsearch-query-builder

Package Overview
Dependencies
0
Maintainers
1
Alerts
File Explorer

Install Socket

Detect and block malicious and high-risk dependencies

Install

    elasticsearch-query-builder

A tool for forming a single query body for further search in Elasticsearch


Maintainers
1

Readme

Elasticsearch Query Builder

CI

codecov

pypi


A tool for forming a single query body for further search in Elasticsearch

Features

  • A single entry point for receiving a ready-made request
  • Support for the most frequently used fields
  • Basic normalization of input data with the ability to specify the type
  • No dependencies

Installation

Requirements:

  • Installed python 3.8 or higher
pip install elasticsearch-query-builder

Usage

To use Elasticsearch query builder, you need to describe the inheritor class from the base builder class, and then describe the expected fields as class attributes

from elasticsearch_query_builder import ElasticsearchQueryBuilder, fields


class BookQueryBuilder(ElasticsearchQueryBuilder):
    search = fields.MultiMatchElasticField(
        query_type="best_fields",
        fields=[
            "field_1",
            "field_2",
            "field_3",
            "obj.field_4",
        ]
    )

    with_reviews = fields.TermElasticField(
        input_type=bool,
        field_name="has_reviews"
    )

    author = fields.NestedElasticField(
        path="authors",
        child=fields.MatchElasticField(
            input_type=str,
            field_name="name"
        )
    )

The next step is to call the described class, passing it an object with request parameters in the constructor

...

builder = BookQueryBuilder({"search": "World", "with_reviews": "true", "author": "John Doe"})
query = builder.query
print(query)

As a result of execution, a query object will be constructed, which can be sent to Elasticsearch for search

{
    "query": {
        "bool": {
            "must": [
                {
                    "multi_match": {
                        "query": "World",
                        "type": "best_fields",
                        "fields": [
                            "field_1",
                            "field_2",
                            "field_3",
                            "obj.field_4"
                        ]
                    }
                },
                {
                    "term": {
                        "has_reviews": true
                    }
                },
                {
                    "nested": {
                        "path": "authors",
                        "query": {
                            "match": {
                                "authors.name": {
                                    "query": "John Doe"
                                }
                            }
                        }
                    }
                }
            ]
        }
    }
}

FAQs


Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc