diff --git a/.classpath b/.classpath
index 9e4aea59b..139752929 100644
--- a/.classpath
+++ b/.classpath
@@ -68,7 +68,7 @@
-
+
diff --git a/source/net/yacy/cora/federate/solr/SchemaConfiguration.java b/source/net/yacy/cora/federate/solr/SchemaConfiguration.java
index 9c563bf07..f57068dc9 100644
--- a/source/net/yacy/cora/federate/solr/SchemaConfiguration.java
+++ b/source/net/yacy/cora/federate/solr/SchemaConfiguration.java
@@ -112,6 +112,14 @@ public class SchemaConfiguration extends Configuration implements Serializable {
return this.contains(field.getSolrFieldName());
}
+ public void remove(final SolrInputDocument doc, final SchemaDeclaration key) {
+ key.remove(doc);
+ }
+
+ public void remove(final SolrInputDocument doc, final String key) {
+ doc.removeField(key);
+ }
+
public void add(final SolrInputDocument doc, final SchemaDeclaration key, final String value) {
assert !key.isMultiValued() : "key = " + key.getSolrFieldName();
if ((isEmpty() || contains(key)) && (!this.lazy || (value != null && !value.isEmpty()))) key.add(doc, value);
diff --git a/source/net/yacy/cora/federate/solr/SchemaDeclaration.java b/source/net/yacy/cora/federate/solr/SchemaDeclaration.java
index 56d4c9655..7bcc53e53 100644
--- a/source/net/yacy/cora/federate/solr/SchemaDeclaration.java
+++ b/source/net/yacy/cora/federate/solr/SchemaDeclaration.java
@@ -72,5 +72,7 @@ public interface SchemaDeclaration {
public void add(final SolrInputDocument doc, final double value);
public void add(final SolrInputDocument doc, final boolean value);
+
+ public void remove(final SolrInputDocument doc);
}
\ No newline at end of file
diff --git a/source/net/yacy/search/schema/CollectionConfiguration.java b/source/net/yacy/search/schema/CollectionConfiguration.java
index 04b6a7884..7211a363a 100644
--- a/source/net/yacy/search/schema/CollectionConfiguration.java
+++ b/source/net/yacy/search/schema/CollectionConfiguration.java
@@ -101,6 +101,7 @@ import org.apache.solr.common.SolrDocument;
import org.apache.solr.common.SolrDocumentList;
import org.apache.solr.common.SolrException;
import org.apache.solr.common.SolrInputDocument;
+import org.apache.solr.common.SolrInputField;
import org.eclipse.jetty.util.ConcurrentHashSet;
@@ -1006,6 +1007,10 @@ public class CollectionConfiguration extends SchemaConfiguration implements Seri
}
public void enrich(SolrInputDocument doc, List synonyms, Map> genericFacets) {
+ remove(doc, CollectionSchema.vocabularies_sxt); // delete old values
+ for (SolrInputField sif: doc) {
+ if (sif.getName().startsWith(CollectionSchema.VOCABULARY_PREFIX)) remove(doc, sif.getName());
+ }
if (this.isEmpty() || contains(CollectionSchema.vocabularies_sxt)) {
// write generic navigation
// there are no pre-defined solr fields for navigation because the vocabulary is generic
@@ -1027,6 +1032,7 @@ public class CollectionConfiguration extends SchemaConfiguration implements Seri
}
if (vocabularies.size() > 0) add(doc, CollectionSchema.vocabularies_sxt, vocabularies);
}
+ remove(doc, CollectionSchema.synonyms_sxt); // delete old values
if (this.isEmpty() || contains(CollectionSchema.synonyms_sxt)) {
if (synonyms.size() > 0) add(doc, CollectionSchema.synonyms_sxt, synonyms);
}
diff --git a/source/net/yacy/search/schema/CollectionSchema.java b/source/net/yacy/search/schema/CollectionSchema.java
index c23f5640a..85cb1a091 100644
--- a/source/net/yacy/search/schema/CollectionSchema.java
+++ b/source/net/yacy/search/schema/CollectionSchema.java
@@ -341,7 +341,7 @@ public enum CollectionSchema implements SchemaDeclaration {
public final String getComment() {
return this.comment;
}
-
+
@Override
public final void add(final SolrInputDocument doc, final String value) {
assert !this.isMultiValued();
@@ -431,5 +431,9 @@ public enum CollectionSchema implements SchemaDeclaration {
doc.setField(this.getSolrFieldName(), value);
}
+ @Override
+ public final void remove(final SolrInputDocument doc) {
+ doc.removeField(this.getSolrFieldName());
+ }
}
diff --git a/source/net/yacy/search/schema/WebgraphSchema.java b/source/net/yacy/search/schema/WebgraphSchema.java
index 8f2ceded9..18837ad58 100644
--- a/source/net/yacy/search/schema/WebgraphSchema.java
+++ b/source/net/yacy/search/schema/WebgraphSchema.java
@@ -284,5 +284,9 @@ public enum WebgraphSchema implements SchemaDeclaration {
doc.setField(this.getSolrFieldName(), value);
}
+ @Override
+ public final void remove(final SolrInputDocument doc) {
+ doc.removeField(this.getSolrFieldName());
+ }
}