2222@ JsonNaming (PropertyNamingStrategies .SnakeCaseStrategy .class )
2323public class IndexDefinition {
2424
25+ public static final int LEGACY_LUCENE_VERSION = 9 ;
26+
27+ private int luceneVersion = LEGACY_LUCENE_VERSION ; // Legacy version if not set.
28+
2529 @ NotEmpty
2630 private String defaultAnalyzer ;
2731
@@ -31,11 +35,22 @@ public IndexDefinition() {
3135 // Jackson deserialization
3236 }
3337
34- public IndexDefinition (final String defaultAnalyzer , final Map <String , String > fieldAnalyzers ) {
38+ public IndexDefinition (
39+ final int luceneVersion , final String defaultAnalyzer , final Map <String , String > fieldAnalyzers ) {
40+ this .luceneVersion = luceneVersion ;
3541 this .defaultAnalyzer = defaultAnalyzer ;
3642 this .fieldAnalyzers = fieldAnalyzers ;
3743 }
3844
45+ @ JsonProperty
46+ public int getLuceneVersion () {
47+ return luceneVersion ;
48+ }
49+
50+ public void setLuceneVersion (int luceneVersion ) {
51+ this .luceneVersion = luceneVersion ;
52+ }
53+
3954 @ JsonProperty
4055 public String getDefaultAnalyzer () {
4156 return defaultAnalyzer ;
@@ -62,6 +77,7 @@ public boolean hasFieldAnalyzers() {
6277 public int hashCode () {
6378 final int prime = 31 ;
6479 int result = 1 ;
80+ result = prime * result + luceneVersion ;
6581 result = prime * result + ((defaultAnalyzer == null ) ? 0 : defaultAnalyzer .hashCode ());
6682 result = prime * result + ((fieldAnalyzers == null ) ? 0 : fieldAnalyzers .hashCode ());
6783 return result ;
@@ -73,6 +89,7 @@ public boolean equals(Object obj) {
7389 if (obj == null ) return false ;
7490 if (getClass () != obj .getClass ()) return false ;
7591 IndexDefinition other = (IndexDefinition ) obj ;
92+ if (luceneVersion != other .luceneVersion ) return false ;
7693 if (defaultAnalyzer == null ) {
7794 if (other .defaultAnalyzer != null ) return false ;
7895 } else if (!defaultAnalyzer .equals (other .defaultAnalyzer )) return false ;
@@ -84,6 +101,7 @@ public boolean equals(Object obj) {
84101
85102 @ Override
86103 public String toString () {
87- return "IndexDefinition [defaultAnalyzer=" + defaultAnalyzer + ", fieldAnalyzers=" + fieldAnalyzers + "]" ;
104+ return "IndexDefinition [luceneVersion=" + luceneVersion + ", defaultAnalyzer=" + defaultAnalyzer
105+ + ", fieldAnalyzers=" + fieldAnalyzers + "]" ;
88106 }
89107}
0 commit comments