Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[documentation] Be a little bit verbose with aliases and setup #1524

Merged
merged 1 commit into from Jun 6, 2019
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
68 changes: 60 additions & 8 deletions doc/cookbook/aliased-indexes.md
Expand Up @@ -18,32 +18,84 @@ fos_elastica:
```

The process for setting up aliases on an existing application is slightly more complicated
because the bundle is not able to set an alias as the same name as an index. You have some
because the bundle is not able to set an alias as the same name as an index. You have 2
options on how to handle this:

1) Delete the index from Elasticsearch. This option will make searching unavailable in your
1) Option with downtime : Delete the index from Elasticsearch. This option will make searching unavailable in your
application until a population has completed itself, and an alias is created.

```bash
$ curl -XDELETE 'http://localhost:9200/app/'
```

2) Change the index_name parameter for your index to something new, and manually alias the
2) Option without downtime : Change the index_name parameter for your index to something new, and manually alias the
current index to the new index_name, which will then be replaced when you run a repopulate.

```bash
# before actions
curl -XGET 'http://localhost:9200/_alias/?pretty'
{
"app" : {
"aliases" : { }
}
}

# create alias to switch after with no downtime
$ curl -XPOST 'http://localhost:9200/_aliases' -H 'Content-Type: application/json' -d '
{
"actions" : [
{ "add" : { "index" : "app", "alias" : "app_prod" } }
]
}'

#check alias is ok
curl -XGET 'http://localhost:9200/_alias/?pretty'
{
"app" : {
"aliases" : { "app_prod" : { } }
}
}

```

```yaml
#index name is alias name
fos_elastica:
indexes:
app:
use_alias: true
index_name: app_prod
```

clear caches etc, now fos use alias instead of index
```bash
$ curl -XPOST 'http://localhost:9200/_aliases' -H 'Content-Type: application/json' -d '
bin/console -eprod 'fos:elastica:populate'
```
in other cli in // check indexes during populate process
```bash
curl -XGET 'http://localhost:9200/_alias/?pretty'
{
"actions" : [
{ "add" : { "index" : "app", "alias" : "app_prod" } }
]
}'
"app" : {
"aliases" : {
"app_prod" : { }
}
},
"app_prod_2019-05-28-153852" : {
"aliases" : { }
}
}

```
when 'fos:elastica:populate' command finish

```bash
curl -XGET 'http://localhost:9200/_alias/?pretty'
{
"app_prod_2019-05-28-153852" : {
"aliases" : {
"app_prod" : { }
}
}
}

```