Skip to content

Commit 319c446

Browse files
committed
annotated text
1 parent eaa1f62 commit 319c446

File tree

1 file changed

+18
-12
lines changed

1 file changed

+18
-12
lines changed

plugins/mapper-annotated-text/src/main/java/org/elasticsearch/index/mapper/annotatedtext/AnnotatedTextFieldMapper.java

Lines changed: 18 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,9 @@ public static class Builder extends FieldMapper.Builder {
7777

7878
private final Parameter<Boolean> store = Parameter.storeParam(m -> builder(m).store.getValue(), false);
7979

80-
final TextParams.Analyzers analyzers;
80+
final TextParams.AnalyzerParameters analyzers;
81+
final IndexAnalyzers indexAnalyzers;
82+
8183
final Parameter<SimilarityProvider> similarity = TextParams.similarity(m -> builder(m).similarity.getValue());
8284

8385
final Parameter<String> indexOptions = TextParams.textIndexOptions(m -> builder(m).indexOptions.getValue());
@@ -91,10 +93,9 @@ public static class Builder extends FieldMapper.Builder {
9193
public Builder(String name, Version indexCreatedVersion, IndexAnalyzers indexAnalyzers) {
9294
super(name);
9395
this.indexCreatedVersion = indexCreatedVersion;
94-
this.analyzers = new TextParams.Analyzers(
95-
indexAnalyzers,
96-
m -> builder(m).analyzers.getIndexAnalyzer(),
97-
m -> builder(m).analyzers.positionIncrementGap.getValue(),
96+
this.indexAnalyzers = indexAnalyzers;
97+
this.analyzers = new TextParams.AnalyzerParameters(
98+
m -> ((AnnotatedTextFieldMapper) m).analyzerConfiguration,
9899
indexCreatedVersion
99100
);
100101
}
@@ -114,12 +115,12 @@ protected Parameter<?>[] getParameters() {
114115
meta };
115116
}
116117

117-
private AnnotatedTextFieldType buildFieldType(FieldType fieldType, MapperBuilderContext context) {
118+
private AnnotatedTextFieldType buildFieldType(FieldType fieldType, MapperBuilderContext context, TextParams.Analyzers analyzers) {
118119
TextSearchInfo tsi = new TextSearchInfo(
119120
fieldType,
120121
similarity.get(),
121-
wrapAnalyzer(analyzers.getSearchAnalyzer()),
122-
wrapAnalyzer(analyzers.getSearchQuoteAnalyzer())
122+
wrapAnalyzer(analyzers.searchAnalyzer()),
123+
wrapAnalyzer(analyzers.searchQuoteAnalyzer())
123124
);
124125
return new AnnotatedTextFieldType(
125126
context.buildFullName(name),
@@ -132,11 +133,12 @@ private AnnotatedTextFieldType buildFieldType(FieldType fieldType, MapperBuilder
132133

133134
@Override
134135
public AnnotatedTextFieldMapper build(MapperBuilderContext context) {
136+
TextParams.Analyzers analyzers = this.analyzers.buildAnalyzers(indexAnalyzers);
135137
FieldType fieldType = TextParams.buildFieldType(() -> true, store, indexOptions, norms, termVectors);
136138
if (fieldType.indexOptions() == IndexOptions.NONE) {
137139
throw new IllegalArgumentException("[" + CONTENT_TYPE + "] fields must be indexed");
138140
}
139-
if (analyzers.positionIncrementGap.isConfigured()) {
141+
if (this.analyzers.positionIncrementGap.isConfigured()) {
140142
if (fieldType.indexOptions().compareTo(IndexOptions.DOCS_AND_FREQS_AND_POSITIONS) < 0) {
141143
throw new IllegalArgumentException(
142144
"Cannot set position_increment_gap on field [" + name + "] without positions enabled"
@@ -146,9 +148,10 @@ public AnnotatedTextFieldMapper build(MapperBuilderContext context) {
146148
return new AnnotatedTextFieldMapper(
147149
name,
148150
fieldType,
149-
buildFieldType(fieldType, context),
151+
buildFieldType(fieldType, context, analyzers),
150152
multiFieldsBuilder.build(this, context),
151153
copyTo.build(),
154+
analyzers,
152155
this
153156
);
154157
}
@@ -494,6 +497,7 @@ public String typeName() {
494497
}
495498

496499
private final FieldType fieldType;
500+
private final TextParams.AnalyzerConfiguration analyzerConfiguration;
497501
private final Builder builder;
498502

499503
private final NamedAnalyzer indexAnalyzer;
@@ -504,13 +508,15 @@ protected AnnotatedTextFieldMapper(
504508
AnnotatedTextFieldType mappedFieldType,
505509
MultiFields multiFields,
506510
CopyTo copyTo,
511+
TextParams.Analyzers analyzers,
507512
Builder builder
508513
) {
509514
super(simpleName, mappedFieldType, multiFields, copyTo);
510515
assert fieldType.tokenized();
511516
this.fieldType = fieldType;
512517
this.builder = builder;
513-
this.indexAnalyzer = wrapAnalyzer(builder.analyzers.getIndexAnalyzer());
518+
this.indexAnalyzer = wrapAnalyzer(analyzers.indexAnalyzer());
519+
this.analyzerConfiguration = analyzers.configuration();
514520
}
515521

516522
@Override
@@ -542,6 +548,6 @@ protected String contentType() {
542548

543549
@Override
544550
public FieldMapper.Builder getMergeBuilder() {
545-
return new Builder(simpleName(), builder.indexCreatedVersion, builder.analyzers.indexAnalyzers).init(this);
551+
return new Builder(simpleName(), builder.indexCreatedVersion, builder.indexAnalyzers).init(this);
546552
}
547553
}

0 commit comments

Comments
 (0)