2014-06-20 28 views
6

Belgenimi, belirli bir duruma bağlı olarak ayrı bir dizinde dizine eklemek istediğim bir kullanıcı elimde var. Örneğin, fatura belgesini, üzerine eklenmiş departman ismiyle bir dizine kaydetmek istiyorum.Yuvarlama Dizini (Dinamik dizin adı) Yay Verme Elasticsearch

@Document(indexName="store_{department}", indexStoreType="invoice") 
public class InvoiceES{ 

    // fields 
    @Id 
    private String id; 
    @Field 
    private String department; 
} 

Yay Verilerini kullanarak bunu başarmak mümkün mü?

Değilse, Bahar Verilerinin gelecek sürümlerinde planlanmış mı?

+0

Yo, sorumun sizinkilerle ilgili olmadığını biliyorum, ancak ... Endeksinizi dinamik olarak güncellemek için neler yaptınız? Demek istediğim, dükkanın var. Dizinin adını dinamik olarak nasıl güncelleyebilirim lütfen açıklar mısınız lütfen? Beynimi kırmaya çalışıyorum, işe yarıyor ... –

cevap

0

@Document (indexname = "# { '$ {elasticsearch.index.name}'}", type = "kategorisinde", kırıklara = 1, kopyaları var = 0, RefreshInterval = "-1") Bu, dizin oluşturulan

: "$ {elasticsearch.index.name}"

bahar veri-elasticsearch versiyonu 1.1.2.RELEASE ve 1.2.0 denenmiş .M1 ancak jira'ya göre (https://jira.spring.io/browse/DATAES-93), 1.1 RC1

-2
sürümüne sabitlenmiştir.

bunu yapmak bulundu tek yolu el @Document notunu olmadan yapıyor:

 client = new TransportClient().addTransportAddress(new InetSocketTransportAddress(nodeId, port)); 

     IndexResponse response = client.prepareIndex(your_index, type, subid) 
       .setSource(jsonBuilder() 
           .startObject() 
           .field("field1", field1)) 
           .field("fileld2", field2) 
           ).endObject()) 
       .execute().actionGet(); 
0

Bildiğim kadarıyla yay çizme-marş-veri-elasticsearch-1.5 gibi, sen bahar el ifadeye göre bunu başarabilir:

@Bean 
Department department() { 
    return new Department(); 
} 

@Document(indexName="store_#{department.name()}", indexStoreType="invoice") 
public class InvoiceES{} 
sen kaydetmek istediğiniz dizini değiştirmek için fasulye özelliğini değiştirebilir

/arama:

invoiceRepo.save(new Invoice(...)); 
    department.setName("newName"); 
    invoiceRepo.save(new Invoice(...)); 

birden t bu fasulye paylaşmaya değildir dikkat edilmelidir neler senin endeksini dağıtabilir.

İlgili konular