2

我正在使用spring-data-elasticsearch 1.1.2。我正在嘗試使用java註釋來指定不應分析字段。spring-data-elasticsearch - @Field/FieldIndex.not_analyzed忽略

我使用以下注釋: @Field(index = FieldIndex.not_analyzed) private String category;

生成的映射不包括「指數」:「not_analyzed」這個字段:

"properties" : { 
     "category" : { 
     "type" : "string" 
     }, 
     ... 

我有沒有運氣找到有關如何做到這一點有用的文檔,但它看起來像它應該工作。

它應該工作嗎?我在哪裏可以找到更多信息?如何最好地調試?

謝謝。

更新:問題也出現在最新的1.2.0版本。

+0

你能找到解決這個問題的辦法嗎?我面對的情況完全一樣...... –

+1

是的。原來,我對Spring數據elasticsearch更新現有映射的能力有一些誤解。這是通過刪除和重新創建索引解決的。 – jbelis

回答

2

類似的問題在這裏問:Spring Data Elasticsearch's @Field annotation not working

你必須明確地把映射到對應用程序啓動集羣。

elasticsearchTemplate.putMapping(YourDocument.class); 

你的節點/集羣有沒有約你把文檔的想法,它認爲它的第一次,沒有人告訴他有這回事呢。 Spring只掃描組件,存儲庫等的包,而不是@Documents。我不確定,但我認爲映射不是集羣配置的一部分,因此必須在集羣啓動後指定映射。