Coder Social home page Coder Social logo

elasticsearchbundle's Introduction

ONGR Elasticsearch Bundle

Elasticsearch Bundle was created in order to serve the need for professional Elasticsearch integration with enterprise level Symfony applications. This bundle is:

  • Supported by ONGR.io development team.
  • Uses the official elasticsearch-php client.
  • Ensures full integration with Symfony framework.

Technical goodies:

  • Provides interactive Document object generator via CLI (ongr:es:document:generate)
  • Provides DSL query builder to be executed by type repository services.
  • Uses Doctrine-like documents(entities) document-object mapping using annotations.
  • Query results iterators are provided for your convenience.
  • Console CLI commands for index and types management and data import / export.
  • Profiler that integrates in the Symfony debug bar and shows all executed queries.
  • Designed in an extensible way for all your custom needs.

If you need any help, stack overflow is the preferred and recommended way to ask questions about ONGR bundles and libraries.

Build Status Coverage Status Latest Stable Version Total Downloads Scrutinizer Code Quality

Version matrix

Elasticsearch version ElasticsearchBundle version
>= 5.0 ~5.x
>= 2.0, < 5.0 >=1.0, < 5.0
>= 1.0, < 2.0 >= 0.10, < 1.0
<= 0.90.x < 0.10

Documentation

The online documentation of the bundle can be found in http://docs.ongr.io. Docs source is stored within the repo under Resources/doc/, so if you see a typo or problem, please submit a PR to fix it!

For contribution to the documentation you can find it in the contribute topic.

FAQ

Setup the bundle

Step 1: Install Elasticsearch bundle

Elasticsearch bundle is installed using Composer.

php composer.phar require ongr/elasticsearch-bundle "~5.0"

Instructions for installing and deploying Elasticsearch can be found in Elasticsearch installation page.

Enable Elasticsearch bundle in your AppKernel:

// app/AppKernel.php

public function registerBundles()
{
    $bundles = [
        // ...
        new ONGR\ElasticsearchBundle\ONGRElasticsearchBundle(),
    ];
    
    // ...
}

Step 2: Add configuration

Add minimal configuration for Elasticsearch bundle.

# app/config/config.yml

ongr_elasticsearch:
    managers:
        default:
            index:
                index_name: acme
            mappings:
                - AppBundle

This is the very basic example only, for more information, please take a look at the configuration chapter.

In this particular example there are 2 things you should know. The index name in the index node and the mappings. Mappings is the place where your documents are stored (more info at the mapping chapter).

Step 3: Define your Elasticsearch types as Document objects

This bundle uses objects to represent Elasticsearch documents. Lets create a Customer class for customer document.

// src/AppBundle/Document/Customer.php

namespace AppBundle\Document;

use ONGR\ElasticsearchBundle\Annotation as ES;

/**
 * @ES\Document()
 */
class Customer
{
    /**
     * @var string
     *
     * @ES\Id()
     */
    public $id;

    /**
     * @var string
     *
     * @ES\Property(name="name", type="string")
     */
    public $name;
}

This is the basic example only, for more information about mapping, please take a look at the the mapping chapter.

Step 4: Create index and mappings

Elasticsearch bundle provides several CLI commands. One of them is for creating index, run command in your terminal:

bin/console ongr:es:index:create

More info about the rest of the commands can be found in the commands chapter.

Step 5: Enjoy with the Elasticsearch

We advise to take a look at the mapping chapter to configure the index. Search documentation for the Elasticsearch bundle is available here. And finally it's up to you what amazing things you are going to create ๐Ÿ˜Ž .

Troubleshooting

License

This bundle is licensed under the MIT license. Please, see the complete license in the bundle LICENSE file.

elasticsearchbundle's People

Contributors

adrienbrault avatar alexander-schranz avatar andriusbil avatar asev avatar bangpound avatar birkof avatar brammers avatar chs2 avatar chyzas avatar damienalexandre avatar dvondrak avatar einorler avatar emgiezet avatar grandltu avatar ivannis avatar juliensantos87 avatar linasmo avatar lmikelionis avatar ltrocky avatar mvar avatar ndinh215 avatar norkunas avatar saimaz avatar tautrimas avatar tomaspocevicius avatar trandangtri avatar trylika avatar weburnit avatar xwb avatar zylius avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.