private boolean containsAllFields(Fields fields) {
            if (this.properties.size() < fields.properties.size()) {
                return false;
            }
            boolean isContains = fields.properties.entrySet().stream()
                    .allMatch(item -> Objects.equals(properties.get(item.getKey()), item.getValue()));
            if (!isContains) {
                return false;
            }
            Set<String> inputExcludes = fields.source.getExcludes();
            Set<String> excludes = source.getExcludes();
            //need to add new excludes
            if (!excludes.containsAll(inputExcludes)) {
                return false;
            }
            //need to delete existing excludes
            for (String p : fields.properties.keySet()) {
                if (!inputExcludes.contains(p) && excludes.contains(p)) {
                    return false;
                }
            }
            return true;
        }
Returns ture when the input fields have already been stored in the properties.
oap-server/server-storage-plugin/storage-elasticsearch-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/elasticsearch/base/IndexStructures.java