XContentParser parser = context.parser(); if (parser.currentToken() == XContentParser.Token.VALUE_NULL) { value = fieldType().nullValueAsString(); } else { value = parser.textOrNull(); final NamedAnalyzer normalizer = fieldType().normalizer(); if (normalizer != null) { try (TokenStream ts = normalizer.tokenStream(name(), value)) { context.allEntries().addText(fieldType().name(), value, fieldType().boost()); if (fieldType().indexOptions() != IndexOptions.NONE || fieldType().stored()) { Field field = new Field(fieldType().name(), binaryValue, fieldType()); fields.add(field); if (fieldType().hasDocValues() == false && fieldType().omitNorms()) { createFieldNamesField(context, fields); if (fieldType().hasDocValues()) { fields.add(new SortedSetDocValuesField(fieldType().name(), binaryValue));
analyzer = fieldType.indexAnalyzer(); } else if (fieldType instanceof KeywordFieldMapper.KeywordFieldType) { analyzer = ((KeywordFieldMapper.KeywordFieldType) fieldType).normalizer(); if (analyzer == null) {
XContentParser parser = context.parser(); if (parser.currentToken() == XContentParser.Token.VALUE_NULL) { value = fieldType().nullValueAsString(); } else { value = parser.textOrNull(); final NamedAnalyzer normalizer = fieldType().normalizer(); if (normalizer != null) { try (TokenStream ts = normalizer.tokenStream(name(), value)) { context.allEntries().addText(fieldType().name(), value, fieldType().boost()); if (fieldType().indexOptions() != IndexOptions.NONE || fieldType().stored()) { Field field = new Field(fieldType().name(), binaryValue, fieldType()); fields.add(field); if (fieldType().hasDocValues()) { fields.add(new SortedSetDocValuesField(fieldType().name(), binaryValue)); } else if (fieldType().stored() || fieldType().indexOptions() != IndexOptions.NONE) { createFieldNamesField(context, fields);
analyzer = fieldType.indexAnalyzer(); } else if (fieldType instanceof KeywordFieldMapper.KeywordFieldType) { analyzer = ((KeywordFieldMapper.KeywordFieldType) fieldType).normalizer(); if (analyzer == null) {
analyzer = fieldType.indexAnalyzer(); } else if (fieldType instanceof KeywordFieldMapper.KeywordFieldType) { analyzer = ((KeywordFieldMapper.KeywordFieldType) fieldType).normalizer(); if (analyzer == null) {
XContentParser parser = context.parser(); if (parser.currentToken() == XContentParser.Token.VALUE_NULL) { value = fieldType().nullValueAsString(); } else { value = parser.textOrNull(); final NamedAnalyzer normalizer = fieldType().normalizer(); if (normalizer != null) { try (TokenStream ts = normalizer.tokenStream(name(), value)) { context.allEntries().addText(fieldType().name(), value, fieldType().boost()); if (fieldType().indexOptions() != IndexOptions.NONE || fieldType().stored()) { Field field = new Field(fieldType().name(), binaryValue, fieldType()); fields.add(field); if (fieldType().hasDocValues()) { fields.add(new SortedSetDocValuesField(fieldType().name(), binaryValue));
XContentParser parser = context.parser(); if (parser.currentToken() == XContentParser.Token.VALUE_NULL) { value = fieldType().nullValueAsString(); } else { value = parser.textOrNull(); final NamedAnalyzer normalizer = fieldType().normalizer(); if (normalizer != null) { try (TokenStream ts = normalizer.tokenStream(name(), value)) { context.allEntries().addText(fieldType().name(), value, fieldType().boost()); if (fieldType().indexOptions() != IndexOptions.NONE || fieldType().stored()) { Field field = new Field(fieldType().name(), binaryValue, fieldType()); fields.add(field); if (fieldType().hasDocValues() == false && fieldType().omitNorms()) { createFieldNamesField(context, fields); if (fieldType().hasDocValues()) { fields.add(new SortedSetDocValuesField(fieldType().name(), binaryValue));
String value = (object instanceof UUID) ? object.toString() : (String) object; // #74 uuid stored as string if (value == null) value = fieldType().nullValueAsString(); final NamedAnalyzer normalizer = fieldType().normalizer(); if (normalizer != null) { try (TokenStream ts = normalizer.tokenStream(name(), value)) { context.allEntries().addText(fieldType().name(), value, fieldType().boost()); if (fieldType().indexOptions() != IndexOptions.NONE || fieldType().stored()) { Field field = new Field(fieldType().name(), binaryValue, fieldType()); context.doc().add(field); if (fieldType().hasDocValues()) { context.doc().add(new SortedSetDocValuesField(fieldType().name(), binaryValue));
boolean parent = context.docMapper().isParent(context.sourceToParse().type()); if (parent) { fields.add(new SortedDocValuesField(parentJoinField.fieldType().name(), new BytesRef(context.sourceToParse().id())));
boolean parent = context.docMapper().isParent(context.sourceToParse().type()); if (parent) { fields.add(new SortedDocValuesField(parentJoinField.fieldType().name(), new BytesRef(context.sourceToParse().id())));
boolean parent = context.docMapper().isParent(context.sourceToParse().type()); if (parent) { fields.add(new SortedDocValuesField(parentJoinField.fieldType().name(), new BytesRef(context.sourceToParse().id())));
@Override protected void doXContentBody(XContentBuilder builder, boolean includeDefaults, Params params) throws IOException { super.doXContentBody(builder, includeDefaults, params); if (includeDefaults || fieldType().nullValue() != null) { builder.field("null_value", fieldType().nullValue()); } if (includeInAll != null) { builder.field("include_in_all", includeInAll); } else if (includeDefaults) { builder.field("include_in_all", true); } if (includeDefaults || ignoreAbove != Defaults.IGNORE_ABOVE) { builder.field("ignore_above", ignoreAbove); } if (fieldType().normalizer() != null) { builder.field("normalizer", fieldType().normalizer().name()); } else if (includeDefaults) { builder.nullField("normalizer"); } if (includeDefaults || fieldType().splitQueriesOnWhitespace) { builder.field("split_queries_on_whitespace", fieldType().splitQueriesOnWhitespace); } } }
@Override protected void doXContentBody(XContentBuilder builder, boolean includeDefaults, Params params) throws IOException { super.doXContentBody(builder, includeDefaults, params); if (includeDefaults || fieldType().nullValue() != null) { builder.field("null_value", fieldType().nullValue()); } if (includeInAll != null) { builder.field("include_in_all", includeInAll); } else if (includeDefaults) { builder.field("include_in_all", true); } if (includeDefaults || ignoreAbove != Defaults.IGNORE_ABOVE) { builder.field("ignore_above", ignoreAbove); } if (fieldType().normalizer() != null) { builder.field("normalizer", fieldType().normalizer().name()); } else if (includeDefaults) { builder.nullField("normalizer"); } if (includeDefaults || fieldType().splitQueriesOnWhitespace) { builder.field("split_queries_on_whitespace", fieldType().splitQueriesOnWhitespace); } } }
private static Analyzer getAnalyzerAtField(IndexShard indexShard, String field, @Nullable Map<String, String> perFieldAnalyzer) { MapperService mapperService = indexShard.mapperService(); Analyzer analyzer; if (perFieldAnalyzer != null && perFieldAnalyzer.containsKey(field)) { analyzer = mapperService.getIndexAnalyzers().get(perFieldAnalyzer.get(field).toString()); } else { MappedFieldType fieldType = mapperService.fullName(field); if (fieldType instanceof KeywordFieldMapper.KeywordFieldType) { KeywordFieldMapper.KeywordFieldType keywordFieldType = (KeywordFieldMapper.KeywordFieldType) fieldType; analyzer = keywordFieldType.normalizer() == null ? keywordFieldType.indexAnalyzer() : keywordFieldType.normalizer(); } else { analyzer = fieldType.indexAnalyzer(); } } if (analyzer == null) { analyzer = mapperService.getIndexAnalyzers().getDefaultIndexAnalyzer(); } return analyzer; }
@Override protected BytesRef indexedValueForSearch(Object value) { if (searchAnalyzer() == Lucene.KEYWORD_ANALYZER) { // keyword analyzer with the default attribute source which encodes terms using UTF8 // in that case we skip normalization, which may be slow if there many terms need to // parse (eg. large terms query) since Analyzer.normalize involves things like creating // attributes through reflection // This if statement will be used whenever a normalizer is NOT configured return super.indexedValueForSearch(value); } if (value == null) { return null; } if (value instanceof BytesRef) { value = ((BytesRef) value).utf8ToString(); } return searchAnalyzer().normalize(name(), value.toString()); } }
@Override protected void doXContentBody(XContentBuilder builder, boolean includeDefaults, Params params) throws IOException { super.doXContentBody(builder, includeDefaults, params); if (includeDefaults || fieldType().nullValue() != null) { builder.field("null_value", fieldType().nullValue()); } if (includeInAll != null) { builder.field("include_in_all", includeInAll); } else if (includeDefaults) { builder.field("include_in_all", true); } if (includeDefaults || ignoreAbove != Defaults.IGNORE_ABOVE) { builder.field("ignore_above", ignoreAbove); } if (fieldType().normalizer() != null) { builder.field("normalizer", fieldType().normalizer().name()); } else if (includeDefaults) { builder.nullField("normalizer"); } }
@Override public BytesRef indexedValueForSearch(Object value) { if (searchAnalyzer() == Lucene.KEYWORD_ANALYZER) { // keyword analyzer with the default attribute source which encodes terms using UTF8 // in that case we skip normalization, which may be slow if there many terms need to // parse (eg. large terms query) since Analyzer.normalize involves things like creating // attributes through reflection // This if statement will be used whenever a normalizer is NOT configured return super.indexedValueForSearch(value); } if (value == null) { return null; } if (value instanceof BytesRef) { value = ((BytesRef) value).utf8ToString(); } return searchAnalyzer().normalize(name(), value.toString()); } }
private static Analyzer getAnalyzerAtField(IndexShard indexShard, String field, @Nullable Map<String, String> perFieldAnalyzer) { MapperService mapperService = indexShard.mapperService(); Analyzer analyzer; if (perFieldAnalyzer != null && perFieldAnalyzer.containsKey(field)) { analyzer = mapperService.getIndexAnalyzers().get(perFieldAnalyzer.get(field).toString()); } else { MappedFieldType fieldType = mapperService.fullName(field); if (fieldType instanceof KeywordFieldMapper.KeywordFieldType) { KeywordFieldMapper.KeywordFieldType keywordFieldType = (KeywordFieldMapper.KeywordFieldType) fieldType; analyzer = keywordFieldType.normalizer() == null ? keywordFieldType.indexAnalyzer() : keywordFieldType.normalizer(); } else { analyzer = fieldType.indexAnalyzer(); } } if (analyzer == null) { analyzer = mapperService.getIndexAnalyzers().getDefaultIndexAnalyzer(); } return analyzer; }
@Override protected BytesRef indexedValueForSearch(Object value) { if (searchAnalyzer() == Lucene.KEYWORD_ANALYZER) { // keyword analyzer with the default attribute source which encodes terms using UTF8 // in that case we skip normalization, which may be slow if there many terms need to // parse (eg. large terms query) since Analyzer.normalize involves things like creating // attributes through reflection // This if statement will be used whenever a normalizer is NOT configured return super.indexedValueForSearch(value); } if (value == null) { return null; } if (value instanceof BytesRef) { value = ((BytesRef) value).utf8ToString(); } return searchAnalyzer().normalize(name(), value.toString()); } }
public KeywordFieldType clone() { return new KeywordFieldType(this); }