2016-11-29 2 views
0

でインデックスを再作成する方法を私は豆のような注釈を付けていますElasticsearchと春データ:別名

"foo-2016.11.04" : { 
    "aliases" : { 
    "foo" : { } 
    } 
} 

@Document(indexName = "foo", type = "bar") 
public class BarEntity { 
    private String someField = ""; 
} 

「foo」が狛犬 - 2016年11月4日のためにelasticsearchで別名です

私がやりたいことはnot_analyzedにsomeFieldのインデックスを変更です:

@Document(indexName = "foo", type = "bar") 
public class BarEntity { 
    @Field(index = FieldIndex.not_analyzed, type = FieldType.String) 
    private String someField = ""; 
} 

私の知る限り、私は新しいインデックスとポイントを作成する必要がありますそのエイリアス。 foo-2016.11.29。

Springデータでそれぞれどのように弾力性のある2.3でこれを行うことができますか? 私のBeanはエイリアスにリンクされており、Spring Dataは自動的に正しいインデックスを作成します。
私はエイリアス経由でインデックスを作成する方法を知りません。

最初にfoo-2016.11.04をfoo-2016.11.29に再インデックス付けして、別名を更新して新しいものを指すようにして、春のアプリを再デプロイするか、ここで何か別のものがありますか?

答えて

0

エイリアスからインデックスを作成することはできませんが、タイムスタンプ付きインデックスを明示的に作成し、インデックステンプレートを使用してエイリアスに自動的に割り当てることができます。明示的にインデックスを作成することで

https://www.elastic.co/guide/en/elasticsearch/reference/2.3/indices-templates.html

+0

、あなたはタイムスタンプインデックスに豆を割り当てる意味ですか? @Document(indexName = "foo-2016.11.29"、type = "bar") – foshpumpa

+0

おそらく、私はそれがES APIのレベルでどのように機能するかを説明しました。あなたを助けない。 IMHO、spring-data-esはESの使用に全く間違ったアプローチを提供します。ありがとう。 – xeye

+0

ありがとう。基本的には、新しく作成したインデックスを指すようにエイリアスを変更してから、@ Documentをエイリアスを指すように戻すように、新しくタイムスタンプを付けたインデックスを@Documentに変更して、最後に再索引付けを行います。うわー...大丈夫、それはショットを与えるだろうが、あなたが言ったように、それは間違いなく奇妙に聞こえる。 – foshpumpa

関連する問題