Daily index with static mapping

classic Classic list List threaded Threaded
5 messages Options
Reply | Threaded
Open this post in threaded view
|

Daily index with static mapping

Mohamed TEYEB
Hi,

Right now, I have only one index which does contain 1 type. So I did create the mapping and place under the config/mapping as explained by the documentation : http://www.elastic.co/guide/en/elasticsearch/reference/0.90/mapping-conf-mappings.html.
 
For the future, I would like to do the following :
- Index will be daily : index_name_YYYYMMDD
- Index will contains N types : index_name_type1, index_name_type2, ... index_name_typeN
- All types will have the same format/mapping.

How can I handle this case with a pre-configured mapping set in the sub-folder config/mapping ?
I know that I can handle it somehow but putting a default mapping, but will it work with more than one index case?
 Example :  I would do a default mapping for all indexes which have a common prefix (INDEX_A_YYYYMMDD => mapping_A, INDEX_B_YYYYMMDD => mapping_B, etc ...)

BR/

--
Please update your bookmarks! We moved to https://discuss.elastic.co/
---
You received this message because you are subscribed to the Google Groups "elasticsearch" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].
To view this discussion on the web visit https://groups.google.com/d/msgid/elasticsearch/a06c0542-1910-4fc7-8a3f-ca899e36fc4d%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
Reply | Threaded
Open this post in threaded view
|

Re: Daily index with static mapping

Mark Walkom-2
Also, the link you provided earlier is from 0.90.X, which is now really old. If you are on that version it's best to upgrade.


PS - We're moving to https://discuss.elastic.co/, please join us there for any future discussions!

On 11 May 2015 at 06:49, Mohamed TEYEB <[hidden email]> wrote:
Hi,

Right now, I have only one index which does contain 1 type. So I did create the mapping and place under the config/mapping as explained by the documentation : http://www.elastic.co/guide/en/elasticsearch/reference/0.90/mapping-conf-mappings.html.
 
For the future, I would like to do the following :
- Index will be daily : index_name_YYYYMMDD
- Index will contains N types : index_name_type1, index_name_type2, ... index_name_typeN
- All types will have the same format/mapping.

How can I handle this case with a pre-configured mapping set in the sub-folder config/mapping ?
I know that I can handle it somehow but putting a default mapping, but will it work with more than one index case?
 Example :  I would do a default mapping for all indexes which have a common prefix (INDEX_A_YYYYMMDD => mapping_A, INDEX_B_YYYYMMDD => mapping_B, etc ...)

BR/

--
Please update your bookmarks! We moved to https://discuss.elastic.co/
---
You received this message because you are subscribed to the Google Groups "elasticsearch" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].
To view this discussion on the web visit https://groups.google.com/d/msgid/elasticsearch/a06c0542-1910-4fc7-8a3f-ca899e36fc4d%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

--
Please update your bookmarks! We moved to https://discuss.elastic.co/
---
You received this message because you are subscribed to the Google Groups "elasticsearch" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].
To view this discussion on the web visit https://groups.google.com/d/msgid/elasticsearch/CAEYi1X9x_4Rhn-tEkwaqG6xYYXa951349zUk1a3nMw5tZ8Nqrg%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.
Reply | Threaded
Open this post in threaded view
|

Re: Daily index with static mapping

Mohamed TEYEB
Hi,

Thanks for you answer. Following the instructions above, I have created 1 template to handle a daily based index with multi types. I created a json file which I dropped under config/templates.
 file name is tpl-INDEX_NAME.json
 content :

{
   
"tpl-INDEX_NAME" : {
       
"template" : "INDEX_NAME-*",
       
"settings" : {
           
"number_of_shards" : 5,
           
"number_of_replicas": 0
       
},
       
"mappings" : {
           
"_default_" : {
               
"properties" : {
....

}



but when I post a document with INDEX_NAME-20150514, INDEX_TYPE1. Elastic search uses a dynamic mapping :

[2015-05-14 18:49:32,395][INFO ][cluster.metadata         ] [host] [ INDEX_NAME-20150514] update_mapping [INDEX_TYPE1] (dynamic)

Any idea about what could be the missing part ?

BR.


On Sunday, 10 May 2015 23:37:06 UTC+2, Mark Walkom wrote:
You want to look at <a href="http://www.elastic.co/guide/en/elasticsearch/reference/current/indices-templates.html" target="_blank" rel="nofollow" onmousedown="this.href='http://www.google.com/url?q\75http%3A%2F%2Fwww.elastic.co%2Fguide%2Fen%2Felasticsearch%2Freference%2Fcurrent%2Findices-templates.html\46sa\75D\46sntz\0751\46usg\75AFQjCNGjpOpb_LKsQ0hjFtVTVaELIEsyQQ';return true;" onclick="this.href='http://www.google.com/url?q\75http%3A%2F%2Fwww.elastic.co%2Fguide%2Fen%2Felasticsearch%2Freference%2Fcurrent%2Findices-templates.html\46sa\75D\46sntz\0751\46usg\75AFQjCNGjpOpb_LKsQ0hjFtVTVaELIEsyQQ';return true;">http://www.elastic.co/guide/en/elasticsearch/reference/current/indices-templates.html
Also, the link you provided earlier is from 0.90.X, which is now really old. If you are on that version it's best to upgrade.


PS - We're moving to <a href="https://discuss.elastic.co/" target="_blank" rel="nofollow" onmousedown="this.href='https://www.google.com/url?q\75https%3A%2F%2Fdiscuss.elastic.co%2F\46sa\75D\46sntz\0751\46usg\75AFQjCNFguF42tUvBArAl-xFnDHHIi5v0cA';return true;" onclick="this.href='https://www.google.com/url?q\75https%3A%2F%2Fdiscuss.elastic.co%2F\46sa\75D\46sntz\0751\46usg\75AFQjCNFguF42tUvBArAl-xFnDHHIi5v0cA';return true;">https://discuss.elastic.co/, please join us there for any future discussions!

On 11 May 2015 at 06:49, Mohamed TEYEB <<a href="javascript:" target="_blank" gdf-obfuscated-mailto="Izox3f8-Am4J" rel="nofollow" onmousedown="this.href='javascript:';return true;" onclick="this.href='javascript:';return true;">mohame...@...> wrote:
Hi,

Right now, I have only one index which does contain 1 type. So I did create the mapping and place under the config/mapping as explained by the documentation : <a href="http://www.elastic.co/guide/en/elasticsearch/reference/0.90/mapping-conf-mappings.html" target="_blank" rel="nofollow" onmousedown="this.href='http://www.google.com/url?q\75http%3A%2F%2Fwww.elastic.co%2Fguide%2Fen%2Felasticsearch%2Freference%2F0.90%2Fmapping-conf-mappings.html\46sa\75D\46sntz\0751\46usg\75AFQjCNH8zoomap6HLYx-cbFFgZFYygG9jA';return true;" onclick="this.href='http://www.google.com/url?q\75http%3A%2F%2Fwww.elastic.co%2Fguide%2Fen%2Felasticsearch%2Freference%2F0.90%2Fmapping-conf-mappings.html\46sa\75D\46sntz\0751\46usg\75AFQjCNH8zoomap6HLYx-cbFFgZFYygG9jA';return true;">http://www.elastic.co/guide/en/elasticsearch/reference/0.90/mapping-conf-mappings.html.
 
For the future, I would like to do the following :
- Index will be daily : index_name_YYYYMMDD
- Index will contains N types : index_name_type1, index_name_type2, ... index_name_typeN
- All types will have the same format/mapping.

How can I handle this case with a pre-configured mapping set in the sub-folder config/mapping ?
I know that I can handle it somehow but putting a default mapping, but will it work with more than one index case?
 Example :  I would do a default mapping for all indexes which have a common prefix (INDEX_A_YYYYMMDD => mapping_A, INDEX_B_YYYYMMDD => mapping_B, etc ...)

BR/

--
Please update your bookmarks! We moved to <a href="https://discuss.elastic.co/" target="_blank" rel="nofollow" onmousedown="this.href='https://www.google.com/url?q\75https%3A%2F%2Fdiscuss.elastic.co%2F\46sa\75D\46sntz\0751\46usg\75AFQjCNFguF42tUvBArAl-xFnDHHIi5v0cA';return true;" onclick="this.href='https://www.google.com/url?q\75https%3A%2F%2Fdiscuss.elastic.co%2F\46sa\75D\46sntz\0751\46usg\75AFQjCNFguF42tUvBArAl-xFnDHHIi5v0cA';return true;">https://discuss.elastic.co/
---
You received this message because you are subscribed to the Google Groups "elasticsearch" group.
To unsubscribe from this group and stop receiving emails from it, send an email to <a href="javascript:" target="_blank" gdf-obfuscated-mailto="Izox3f8-Am4J" rel="nofollow" onmousedown="this.href='javascript:';return true;" onclick="this.href='javascript:';return true;">elasticsearc...@googlegroups.com.
To view this discussion on the web visit <a href="https://groups.google.com/d/msgid/elasticsearch/a06c0542-1910-4fc7-8a3f-ca899e36fc4d%40googlegroups.com?utm_medium=email&amp;utm_source=footer" target="_blank" rel="nofollow" onmousedown="this.href='https://groups.google.com/d/msgid/elasticsearch/a06c0542-1910-4fc7-8a3f-ca899e36fc4d%40googlegroups.com?utm_medium\75email\46utm_source\75footer';return true;" onclick="this.href='https://groups.google.com/d/msgid/elasticsearch/a06c0542-1910-4fc7-8a3f-ca899e36fc4d%40googlegroups.com?utm_medium\75email\46utm_source\75footer';return true;">https://groups.google.com/d/msgid/elasticsearch/a06c0542-1910-4fc7-8a3f-ca899e36fc4d%40googlegroups.com.
For more options, visit <a href="https://groups.google.com/d/optout" target="_blank" rel="nofollow" onmousedown="this.href='https://groups.google.com/d/optout';return true;" onclick="this.href='https://groups.google.com/d/optout';return true;">https://groups.google.com/d/optout.

--
Please update your bookmarks! We have moved to https://discuss.elastic.co/
---
You received this message because you are subscribed to the Google Groups "elasticsearch" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].
To view this discussion on the web visit https://groups.google.com/d/msgid/elasticsearch/182cdd0c-2f15-4f23-aeaa-be184739922a%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
Reply | Threaded
Open this post in threaded view
|

Re: Daily index with static mapping

Mark Walkom-2
That just means that the data in a document/event that was sent to ES did not match the mapping that you provided. Buy default, ES will dynamically map any new fields and then add them to the existing mapping.

To check what that difference is, just grab the mapping from ES and then compare to the one in the file.


PS - We're moving to https://discuss.elastic.co/, please join us there for any future discussions!

On 15 May 2015 at 03:02, Mohamed T. <[hidden email]> wrote:
Hi,

Thanks for you answer. Following the instructions above, I have created 1 template to handle a daily based index with multi types. I created a json file which I dropped under config/templates.
 file name is tpl-INDEX_NAME.json
 content :

{
   
"tpl-INDEX_NAME" : {
       
"template" : "INDEX_NAME-*",
       
"settings" : {
           
"number_of_shards" : 5,
           
"number_of_replicas": 0
       
},
       
"mappings" : {
           
"_default_" : {
               
"properties" : {
....

}



but when I post a document with INDEX_NAME-20150514, INDEX_TYPE1. Elastic search uses a dynamic mapping :

[2015-05-14 18:49:32,395][INFO ][cluster.metadata         ] [host] [ INDEX_NAME-20150514] update_mapping [INDEX_TYPE1] (dynamic)

Any idea about what could be the missing part ?

BR.


On Sunday, 10 May 2015 23:37:06 UTC+2, Mark Walkom wrote:
Also, the link you provided earlier is from 0.90.X, which is now really old. If you are on that version it's best to upgrade.


PS - We're moving to https://discuss.elastic.co/, please join us there for any future discussions!

On 11 May 2015 at 06:49, Mohamed TEYEB <[hidden email]> wrote:
Hi,

Right now, I have only one index which does contain 1 type. So I did create the mapping and place under the config/mapping as explained by the documentation : http://www.elastic.co/guide/en/elasticsearch/reference/0.90/mapping-conf-mappings.html.
 
For the future, I would like to do the following :
- Index will be daily : index_name_YYYYMMDD
- Index will contains N types : index_name_type1, index_name_type2, ... index_name_typeN
- All types will have the same format/mapping.

How can I handle this case with a pre-configured mapping set in the sub-folder config/mapping ?
I know that I can handle it somehow but putting a default mapping, but will it work with more than one index case?
 Example :  I would do a default mapping for all indexes which have a common prefix (INDEX_A_YYYYMMDD => mapping_A, INDEX_B_YYYYMMDD => mapping_B, etc ...)

BR/

--
Please update your bookmarks! We moved to https://discuss.elastic.co/
---
You received this message because you are subscribed to the Google Groups "elasticsearch" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].
To view this discussion on the web visit https://groups.google.com/d/msgid/elasticsearch/a06c0542-1910-4fc7-8a3f-ca899e36fc4d%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

--
Please update your bookmarks! We have moved to https://discuss.elastic.co/
---
You received this message because you are subscribed to the Google Groups "elasticsearch" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].
To view this discussion on the web visit https://groups.google.com/d/msgid/elasticsearch/182cdd0c-2f15-4f23-aeaa-be184739922a%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

--
Please update your bookmarks! We have moved to https://discuss.elastic.co/
---
You received this message because you are subscribed to the Google Groups "elasticsearch" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].
To view this discussion on the web visit https://groups.google.com/d/msgid/elasticsearch/CAEYi1X97Kry7tW12cTcD0OzkasEDofhnM0o2LsXbnbvS-dFVrA%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.
Reply | Threaded
Open this post in threaded view
|

Re: Daily index with static mapping

Mohamed TEYEB
Hi Mark,

I checked and the only difference is the name of the type ... but also a type called '_default_' get created and nothing common with the mapping that I have set-up in the file.
<img style="" src="data:image/png;base64,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" alt="">
I have also another question about my use case, my types will be handling the language of the documents basically and I would like to know if it's possible to fix a different analyzer and warmers for types linked to the same index and not the index itself ? (the language code will be the last 2/3 chars of each type and also a field of each document)

BR.

On Thursday, 14 May 2015 23:49:16 UTC+2, Mark Walkom wrote:
That just means that the data in a document/event that was sent to ES did not match the mapping that you provided. Buy default, ES will dynamically map any new fields and then add them to the existing mapping.

To check what that difference is, just grab the mapping from ES and then compare to the one in the file.


PS - We're moving to <a href="https://discuss.elastic.co/" target="_blank" rel="nofollow" onmousedown="this.href='https://www.google.com/url?q\75https%3A%2F%2Fdiscuss.elastic.co%2F\46sa\75D\46sntz\0751\46usg\75AFQjCNFguF42tUvBArAl-xFnDHHIi5v0cA';return true;" onclick="this.href='https://www.google.com/url?q\75https%3A%2F%2Fdiscuss.elastic.co%2F\46sa\75D\46sntz\0751\46usg\75AFQjCNFguF42tUvBArAl-xFnDHHIi5v0cA';return true;">https://discuss.elastic.co/, please join us there for any future discussions!

On 15 May 2015 at 03:02, Mohamed T. <<a href="javascript:" target="_blank" gdf-obfuscated-mailto="24KevFE3-XQJ" rel="nofollow" onmousedown="this.href='javascript:';return true;" onclick="this.href='javascript:';return true;">mohame...@...> wrote:
Hi,

Thanks for you answer. Following the instructions above, I have created 1 template to handle a daily based index with multi types. I created a json file which I dropped under config/templates.
 file name is tpl-INDEX_NAME.json
 content :

{
   
"tpl-INDEX_NAME" : {
       
"template" : "INDEX_NAME-*",
       
"settings" : {
           
"number_of_shards" : 5,
           
"number_of_replicas": 0
       
},
       
"mappings" : {
           
"_default_" : {
               
"properties" : {
....

}



but when I post a document with INDEX_NAME-20150514, INDEX_TYPE1. Elastic search uses a dynamic mapping :

[2015-05-14 18:49:32,395][INFO ][cluster.metadata         ] [host] [ INDEX_NAME-20150514] update_mapping [INDEX_TYPE1] (dynamic)

Any idea about what could be the missing part ?

BR.


On Sunday, 10 May 2015 23:37:06 UTC+2, Mark Walkom wrote:
You want to look at <a href="http://www.elastic.co/guide/en/elasticsearch/reference/current/indices-templates.html" rel="nofollow" target="_blank" onmousedown="this.href='http://www.google.com/url?q\75http%3A%2F%2Fwww.elastic.co%2Fguide%2Fen%2Felasticsearch%2Freference%2Fcurrent%2Findices-templates.html\46sa\75D\46sntz\0751\46usg\75AFQjCNGjpOpb_LKsQ0hjFtVTVaELIEsyQQ';return true;" onclick="this.href='http://www.google.com/url?q\75http%3A%2F%2Fwww.elastic.co%2Fguide%2Fen%2Felasticsearch%2Freference%2Fcurrent%2Findices-templates.html\46sa\75D\46sntz\0751\46usg\75AFQjCNGjpOpb_LKsQ0hjFtVTVaELIEsyQQ';return true;">http://www.elastic.co/guide/en/elasticsearch/reference/current/indices-templates.html
Also, the link you provided earlier is from 0.90.X, which is now really old. If you are on that version it's best to upgrade.


PS - We're moving to <a href="https://discuss.elastic.co/" rel="nofollow" target="_blank" onmousedown="this.href='https://www.google.com/url?q\75https%3A%2F%2Fdiscuss.elastic.co%2F\46sa\75D\46sntz\0751\46usg\75AFQjCNFguF42tUvBArAl-xFnDHHIi5v0cA';return true;" onclick="this.href='https://www.google.com/url?q\75https%3A%2F%2Fdiscuss.elastic.co%2F\46sa\75D\46sntz\0751\46usg\75AFQjCNFguF42tUvBArAl-xFnDHHIi5v0cA';return true;">https://discuss.elastic.co/, please join us there for any future discussions!

On 11 May 2015 at 06:49, Mohamed TEYEB <[hidden email]> wrote:
Hi,

Right now, I have only one index which does contain 1 type. So I did create the mapping and place under the config/mapping as explained by the documentation : <a href="http://www.elastic.co/guide/en/elasticsearch/reference/0.90/mapping-conf-mappings.html" rel="nofollow" target="_blank" onmousedown="this.href='http://www.google.com/url?q\75http%3A%2F%2Fwww.elastic.co%2Fguide%2Fen%2Felasticsearch%2Freference%2F0.90%2Fmapping-conf-mappings.html\46sa\75D\46sntz\0751\46usg\75AFQjCNH8zoomap6HLYx-cbFFgZFYygG9jA';return true;" onclick="this.href='http://www.google.com/url?q\75http%3A%2F%2Fwww.elastic.co%2Fguide%2Fen%2Felasticsearch%2Freference%2F0.90%2Fmapping-conf-mappings.html\46sa\75D\46sntz\0751\46usg\75AFQjCNH8zoomap6HLYx-cbFFgZFYygG9jA';return true;">http://www.elastic.co/guide/en/elasticsearch/reference/0.90/mapping-conf-mappings.html.
 
For the future, I would like to do the following :
- Index will be daily : index_name_YYYYMMDD
- Index will contains N types : index_name_type1, index_name_type2, ... index_name_typeN
- All types will have the same format/mapping.

How can I handle this case with a pre-configured mapping set in the sub-folder config/mapping ?
I know that I can handle it somehow but putting a default mapping, but will it work with more than one index case?
 Example :  I would do a default mapping for all indexes which have a common prefix (INDEX_A_YYYYMMDD => mapping_A, INDEX_B_YYYYMMDD => mapping_B, etc ...)

BR/

--
Please update your bookmarks! We moved to <a href="https://discuss.elastic.co/" rel="nofollow" target="_blank" onmousedown="this.href='https://www.google.com/url?q\75https%3A%2F%2Fdiscuss.elastic.co%2F\46sa\75D\46sntz\0751\46usg\75AFQjCNFguF42tUvBArAl-xFnDHHIi5v0cA';return true;" onclick="this.href='https://www.google.com/url?q\75https%3A%2F%2Fdiscuss.elastic.co%2F\46sa\75D\46sntz\0751\46usg\75AFQjCNFguF42tUvBArAl-xFnDHHIi5v0cA';return true;">https://discuss.elastic.co/
---
You received this message because you are subscribed to the Google Groups "elasticsearch" group.
To unsubscribe from this group and stop receiving emails from it, send an email to elasticsearc...@googlegroups.com.
To view this discussion on the web visit <a href="https://groups.google.com/d/msgid/elasticsearch/a06c0542-1910-4fc7-8a3f-ca899e36fc4d%40googlegroups.com?utm_medium=email&amp;utm_source=footer" rel="nofollow" target="_blank" onmousedown="this.href='https://groups.google.com/d/msgid/elasticsearch/a06c0542-1910-4fc7-8a3f-ca899e36fc4d%40googlegroups.com?utm_medium\75email\46utm_source\75footer';return true;" onclick="this.href='https://groups.google.com/d/msgid/elasticsearch/a06c0542-1910-4fc7-8a3f-ca899e36fc4d%40googlegroups.com?utm_medium\75email\46utm_source\75footer';return true;">https://groups.google.com/d/msgid/elasticsearch/a06c0542-1910-4fc7-8a3f-ca899e36fc4d%40googlegroups.com.
For more options, visit <a href="https://groups.google.com/d/optout" rel="nofollow" target="_blank" onmousedown="this.href='https://groups.google.com/d/optout';return true;" onclick="this.href='https://groups.google.com/d/optout';return true;">https://groups.google.com/d/optout.

--
Please update your bookmarks! We have moved to <a href="https://discuss.elastic.co/" target="_blank" rel="nofollow" onmousedown="this.href='https://www.google.com/url?q\75https%3A%2F%2Fdiscuss.elastic.co%2F\46sa\75D\46sntz\0751\46usg\75AFQjCNFguF42tUvBArAl-xFnDHHIi5v0cA';return true;" onclick="this.href='https://www.google.com/url?q\75https%3A%2F%2Fdiscuss.elastic.co%2F\46sa\75D\46sntz\0751\46usg\75AFQjCNFguF42tUvBArAl-xFnDHHIi5v0cA';return true;">https://discuss.elastic.co/
---
You received this message because you are subscribed to the Google Groups "elasticsearch" group.
To unsubscribe from this group and stop receiving emails from it, send an email to <a href="javascript:" target="_blank" gdf-obfuscated-mailto="24KevFE3-XQJ" rel="nofollow" onmousedown="this.href='javascript:';return true;" onclick="this.href='javascript:';return true;">elasticsearc...@googlegroups.com.
To view this discussion on the web visit <a href="https://groups.google.com/d/msgid/elasticsearch/182cdd0c-2f15-4f23-aeaa-be184739922a%40googlegroups.com?utm_medium=email&amp;utm_source=footer" target="_blank" rel="nofollow" onmousedown="this.href='https://groups.google.com/d/msgid/elasticsearch/182cdd0c-2f15-4f23-aeaa-be184739922a%40googlegroups.com?utm_medium\75email\46utm_source\75footer';return true;" onclick="this.href='https://groups.google.com/d/msgid/elasticsearch/182cdd0c-2f15-4f23-aeaa-be184739922a%40googlegroups.com?utm_medium\75email\46utm_source\75footer';return true;">https://groups.google.com/d/msgid/elasticsearch/182cdd0c-2f15-4f23-aeaa-be184739922a%40googlegroups.com.
For more options, visit <a href="https://groups.google.com/d/optout" target="_blank" rel="nofollow" onmousedown="this.href='https://groups.google.com/d/optout';return true;" onclick="this.href='https://groups.google.com/d/optout';return true;">https://groups.google.com/d/optout.

--
Please update your bookmarks! We have moved to https://discuss.elastic.co/
---
You received this message because you are subscribed to the Google Groups "elasticsearch" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].
To view this discussion on the web visit https://groups.google.com/d/msgid/elasticsearch/563e7704-6066-4b0b-9d09-6771fa03e91a%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.