PHPackages                             webplumbr/elastic-blog - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Search &amp; Filtering](/categories/search)
4. /
5. webplumbr/elastic-blog

ActiveLibrary[Search &amp; Filtering](/categories/search)

webplumbr/elastic-blog
======================

ElasticSearch powered Blog bundle for Symfony 2 based Projects

v0.7.2(10y ago)017MITPHPPHP &gt;=5.5

Since Aug 30Pushed 10y ago1 watchersCompare

[ Source](https://github.com/webplumbr/elastic-blog)[ Packagist](https://packagist.org/packages/webplumbr/elastic-blog)[ RSS](/packages/webplumbr-elastic-blog/feed)WikiDiscussions master Synced 1mo ago

READMEChangelogDependencies (3)Versions (5)Used By (0)

Elasticsearch powered blog bundle for Symfony 2 Projects
========================================================

[](#elasticsearch-powered-blog-bundle-for-symfony-2-projects)

If you are thinking of migrating your Wordpress blog or even starting a blogging platform to something that uses No-SQL, then give this bundle a try. It uses ElasticSearch for full-text search capabilities and stores your blog posts and associated users, tags, comments as JSON documents within ElasticSearch.

Before you jump in, please read the following:

To do
-----

[](#to-do)

1. Presently does not preserve your Wordpress categories and pages (what this means: your wordpress categories and pages can't be imported)
2. Password change functionality for users
3. Write PHPunit test cases

Requirements
------------

[](#requirements)

1. PHP version 5.5 or above
2. Symfony 2.3 LTS or above with its default set of vendor bundles (out of box)
3. [ElasticSearch](https://www.elastic.co/downloads/elasticsearch) version &gt;= 1.0

Demo
----

[](#demo)

[Blog migrated from Wordpress](http://prophecy.webplumbr.com/)

Installation &amp; Configuration
--------------------------------

[](#installation--configuration)

**Step 1.** Add the following package to your *composer.json*

```
require {
  "webplumbr/elastic-blog": "v0.6"
}

```

**Step 2.** Run the following to install the package and its dependencies

```
composer update

```

**Step 3.** Register the bundle with your *app/AppKernel.php* file

```
$bundles[] = new Webplumbr\BlogBundle\WebplumbrBlogBundle();

```

**Step 4.** Edit *app/config/config.yml* and add the following under *assetic*

```
assetic:
    bundles:        [WebplumbrBlogBundle]

```

**Step 5.** Add the following to *app/config/parameters.yml.dist* file

```
    elastic_host: localhost
    elastic_port: 9200
    elastic_index: your_blog_index
    # change the following
    secret: YouBetterChangeThisToSomethingElse
    # this is used as the default password for all users that you might
    # import using your existing Wordpress Blog XML
    default_user_password: '!letmein!'

```

**NOTE** Remember to change the *default\_user\_password* and *secret* parameters to suit yours.

Run the following to grab the above parameters

```
composer install

```

**Step 6.** Add the following to *app/config/routing.yml* file

```
webplumbr_blog:
    resource: "@WebplumbrBlogBundle/Controller/"
    type:     annotation
    prefix:   /

```

**Step 7.** Make sure your *app/config/security.yml* file resembles the following:

```
# To get started with security, check out the documentation:
# http://symfony.com/doc/current/book/security.html
security:
    encoders:
      Symfony\Component\Security\Core\User\User:
        algorithm: bcrypt
        cost: 12
      Webplumbr\BlogBundle\Security\User\ElasticUser:
        algorithm: bcrypt
        cost: 12

    # http://symfony.com/doc/current/book/security.html#where-do-users-come-from-user-providers
    providers:
        chain_provider:
            chain:
                providers: [in_memory, elasticuser]
        in_memory:
            memory:
                users:
                    # generated using: https://www.dailycred.com/article/bcrypt-calculator
                    superman: { password: '$2a$12$7BhgZjRGuSueYLJy1ZNNieSHf2VDdFsvqyG3wajDu2//VSX5gIT3m', roles: 'ROLE_SUPER_ADMIN' }
        elasticuser:
            id: elastic_user_provider

    firewalls:
        # disables authentication for assets and the profiler, adapt it according to your needs
        dev:
            pattern: ^/(_(profiler|wdt)|css|images|js)/
            security: false

        main:
            anonymous: ~
            # activate different ways to authenticate

            # http_basic: ~
            # http://symfony.com/doc/current/book/security.html#a-configuring-how-your-users-will-authenticate

            # http://symfony.com/doc/current/cookbook/security/form_login_setup.html
            # reference: http://stackoverflow.com/a/26614055
            form_login:
                login_path: /admin/login
                check_path: /admin/login-check
                default_target_path: /admin/dashboard
                always_use_default_target_path: true
            logout:
                path: /admin/logout
                target: /admin/login

    access_control:
        - { path: ^/admin/login, roles: IS_AUTHENTICATED_ANONYMOUSLY }
        - { path: ^/admin, roles: [ROLE_ADMIN, ROLE_SUPER_ADMIN] }

```

**Step 8.** Dump all newly installed assets

```
app/console assetic:dump
app/console assets:install --symlink

```

**Step 9.** Add the following to the file */etc/elasticsearch/elasticsearch.yml*

```
http.max_initial_line_length: 1mb
http.max_content_length: 10mb

```

**Step 10.** The default super admin user credentials to login the first time unless you have modified the user credentials in *app/config/security.yml* to something else.

```
username: superman
password: !underwear!

```

**Step 11.** You can try the following to print the available routes offered by this bundle

```
app/console router:debug

```

**Step 12.** Import your Wordpress XML by visiting the "Import Wordpress Blog" link after logging in to the Admin area.

If everything goes well, you should see your wordpress blog posts, tags, comments and users successfully migrated to the ElasticSearch powered blog platform.

FAQ
---

[](#faq)

If you have any issues, make sure you have checked the following:

1. Is Elasticsearch installed and running as a Service?
2. Does Symfony 2 have required permissions to write to app/cache and/or app/logs folders?
3. Have you cleared Symfony 2 cache folder?
4. Have other installation dependencies outside of this bundle been met with?
5. If you get "no matching package found" error when using *composer* *update*, then change your Project root level *composer.json* 's minimum stability to "dev"
6. If you get "No alive nodes found" or "Empty server" exceptions, then make sure you made changes as per Step 9.

###  Health Score

23

—

LowBetter than 27% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity6

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity51

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~61 days

Total

4

Last Release

3723d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/c779a913686b6567c88679f996d48a981b668f3050c313ccc566c9122b480017?d=identicon)[prasanna](/maintainers/prasanna)

---

Top Contributors

[![webplumbr](https://avatars.githubusercontent.com/u/3846889?v=4)](https://github.com/webplumbr "webplumbr (29 commits)")

---

Tags

wordpresselasticsearchmarkdownsymfony 2blog

### Embed Badge

![Health badge](/badges/webplumbr-elastic-blog/health.svg)

```
[![Health](https://phpackages.com/badges/webplumbr-elastic-blog/health.svg)](https://phpackages.com/packages/webplumbr-elastic-blog)
```

###  Alternatives

[10up/elasticpress

Supercharge WordPress with Elasticsearch.

1.3k374.3k6](/packages/10up-elasticpress)[mailerlite/laravel-elasticsearch

An easy way to use the official PHP ElasticSearch client in your Laravel applications.

934529.3k2](/packages/mailerlite-laravel-elasticsearch)[matchish/laravel-scout-elasticsearch

Search among multiple models with ElasticSearch and Laravel Scout

7431.6M2](/packages/matchish-laravel-scout-elasticsearch)[jeroen-g/explorer

Next-gen Elasticsearch driver for Laravel Scout.

397612.3k](/packages/jeroen-g-explorer)[jsq/amazon-es-php

Support for using IAM authentication with the official Elasticsearch PHP client

9310.6M13](/packages/jsq-amazon-es-php)[babenkoivan/elastic-client

The official PHP Elasticsearch client integrated with Laravel

544.0M6](/packages/babenkoivan-elastic-client)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
