Пример #1
0
  @Override
  public XContentBuilder toXContent(XContentBuilder builder, Params params) throws IOException {
    boolean includeDefaults = params.paramAsBoolean("include_defaults", false);

    // if all are defaults, no sense to write it at all
    if (!includeDefaults
        && fieldType.stored() == Defaults.FIELD_TYPE.stored()
        && fieldType.indexed() == Defaults.FIELD_TYPE.indexed()) {
      return builder;
    }
    builder.startObject(CONTENT_TYPE);
    if (includeDefaults || fieldType.stored() != Defaults.FIELD_TYPE.stored()) {
      builder.field("store", fieldType.stored());
    }
    if (includeDefaults || fieldType.indexed() != Defaults.FIELD_TYPE.indexed()) {
      builder.field(
          "index", indexTokenizeOptionToString(fieldType.indexed(), fieldType.tokenized()));
    }
    builder.endObject();
    return builder;
  }
  private void innerToXContent(XContentBuilder builder, boolean includeDefaults)
      throws IOException {
    if (includeDefaults || enabled != Defaults.ENABLED) {
      builder.field("enabled", enabled);
    }
    if (includeDefaults || autoBoost != false) {
      builder.field("auto_boost", autoBoost);
    }
    if (includeDefaults || fieldType.stored() != Defaults.FIELD_TYPE.stored()) {
      builder.field("store", fieldType.stored());
    }
    if (includeDefaults || fieldType.storeTermVectors() != Defaults.FIELD_TYPE.storeTermVectors()) {
      builder.field("store_term_vectors", fieldType.storeTermVectors());
    }
    if (includeDefaults
        || fieldType.storeTermVectorOffsets() != Defaults.FIELD_TYPE.storeTermVectorOffsets()) {
      builder.field("store_term_vector_offsets", fieldType.storeTermVectorOffsets());
    }
    if (includeDefaults
        || fieldType.storeTermVectorPositions() != Defaults.FIELD_TYPE.storeTermVectorPositions()) {
      builder.field("store_term_vector_positions", fieldType.storeTermVectorPositions());
    }
    if (includeDefaults
        || fieldType.storeTermVectorPayloads() != Defaults.FIELD_TYPE.storeTermVectorPayloads()) {
      builder.field("store_term_vector_payloads", fieldType.storeTermVectorPayloads());
    }
    if (includeDefaults || fieldType.omitNorms() != Defaults.FIELD_TYPE.omitNorms()) {
      builder.field("omit_norms", fieldType.omitNorms());
    }

    if (indexAnalyzer == null && searchAnalyzer == null) {
      if (includeDefaults) {
        builder.field("analyzer", "default");
      }
    } else if (indexAnalyzer == null) {
      // searchAnalyzer != null
      if (includeDefaults || !searchAnalyzer.name().startsWith("_")) {
        builder.field("search_analyzer", searchAnalyzer.name());
      }
    } else if (searchAnalyzer == null) {
      // indexAnalyzer != null
      if (includeDefaults || !indexAnalyzer.name().startsWith("_")) {
        builder.field("index_analyzer", indexAnalyzer.name());
      }
    } else if (indexAnalyzer.name().equals(searchAnalyzer.name())) {
      // indexAnalyzer == searchAnalyzer
      if (includeDefaults || !indexAnalyzer.name().startsWith("_")) {
        builder.field("analyzer", indexAnalyzer.name());
      }
    } else {
      // both are there but different
      if (includeDefaults || !indexAnalyzer.name().startsWith("_")) {
        builder.field("index_analyzer", indexAnalyzer.name());
      }
      if (includeDefaults || !searchAnalyzer.name().startsWith("_")) {
        builder.field("search_analyzer", searchAnalyzer.name());
      }
    }

    if (similarity() != null) {
      builder.field("similarity", similarity().name());
    } else if (includeDefaults) {
      builder.field("similarity", SimilarityLookupService.DEFAULT_SIMILARITY);
    }

    if (customFieldDataSettings != null) {
      builder.field("fielddata", (Map) customFieldDataSettings.getAsMap());
    } else if (includeDefaults) {
      builder.field("fielddata", (Map) fieldDataType.getSettings().getAsMap());
    }
  }