- add the copyField author_sxt only if author exists

- set the solr default search field according to existing fields
pull/1/head
Michael Peter Christen 12 years ago
parent 088373b4ea
commit b6ae6262f6

@ -41,40 +41,27 @@ public class schema {
// write scheme
int c = 0;
/*
//<field name="#[solrname]#" type="#[type]#"#(indexedChecked)#:: indexed="true"#(/indexedChecked)##(storedChecked)#:: stored="true"#(/storedChecked)##(multiValuedChecked)#:: multiValued="true"#(/multiValuedChecked)##(omitNormsChecked)#:: omitNorms="true"#(/omitNormsChecked)#/>
if (sb == null) {
for (SolrType type : SolrType.values()) {
prop.put("fields_" + c + "_solrname", field.getSolrFieldName());
prop.put("fields_" + c + "_type", field.getType().printName());
prop.put("fields_" + c + "_comment", field.getComment());
prop.put("fields_" + c + "_indexedChecked", field.isIndexed() ? 1 : 0);
prop.put("fields_" + c + "_storedChecked", field.isStored() ? 1 : 0);
prop.put("fields_" + c + "_multiValuedChecked", field.isMultiValued() ? 1 : 0);
prop.put("fields_" + c + "_omitNormsChecked", field.isOmitNorms() ? 1 : 0);
c++;
}
prop.put("fields", c);
} else {
*/
SolrConfiguration solrScheme = sb.index.fulltext().getSolrScheme();
for (YaCySchema field : YaCySchema.values()) {
if (solrScheme.contains(field.name())) {
prop.put("fields_" + c + "_solrname", field.getSolrFieldName());
prop.put("fields_" + c + "_type", field.getType().printName());
prop.put("fields_" + c + "_comment", field.getComment());
prop.put("fields_" + c + "_indexedChecked", field.isIndexed() ? 1 : 0);
prop.put("fields_" + c + "_storedChecked", field.isStored() ? 1 : 0);
prop.put("fields_" + c + "_multiValuedChecked", field.isMultiValued() ? 1 : 0);
prop.put("fields_" + c + "_omitNormsChecked", field.isOmitNorms() ? 1 : 0);
addField(prop, c, field);
c++;
}
}
if (solrScheme.contains(YaCySchema.author)) {
addField(prop, c, YaCySchema.author_sxt);
}
prop.put("fields", c);
//}
prop.put("copyFieldAuthor", solrScheme.contains(YaCySchema.author) ? 1 : 0);
prop.put("solruniquekey",YaCySchema.id.getSolrFieldName());
prop.put("solrdefaultsearchfield",YaCySchema.text_t.getSolrFieldName());
prop.put("solrdefaultsearchfield",
solrScheme.contains(YaCySchema.text_t) ? YaCySchema.text_t.getSolrFieldName() :
solrScheme.contains(YaCySchema.fuzzy_signature_text_t) ? YaCySchema.fuzzy_signature_text_t.getSolrFieldName() :
solrScheme.contains(YaCySchema.h1_txt) ? YaCySchema.h1_txt.getSolrFieldName() :
YaCySchema.id.getSolrFieldName()
);
// add CORS Access header
@ -85,4 +72,14 @@ public class schema {
// return rewrite properties
return prop;
}
private static void addField(servletProperties prop, int c, YaCySchema field) {
prop.put("fields_" + c + "_solrname", field.getSolrFieldName());
prop.put("fields_" + c + "_type", field.getType().printName());
prop.put("fields_" + c + "_comment", field.getComment());
prop.put("fields_" + c + "_indexedChecked", field.isIndexed() ? 1 : 0);
prop.put("fields_" + c + "_storedChecked", field.isStored() ? 1 : 0);
prop.put("fields_" + c + "_multiValuedChecked", field.isMultiValued() ? 1 : 0);
prop.put("fields_" + c + "_omitNormsChecked", field.isOmitNorms() ? 1 : 0);
}
}

@ -61,7 +61,7 @@
#{/fields}#
<copyField source="author" dest="author_sxt" maxChars="100" />
#(copyFieldAuthor)#::<copyField source="author" dest="author_sxt" maxChars="100" />#(/copyFieldAuthor)#
</fields>
<uniqueKey>#[solruniquekey]#</uniqueKey>

Loading…
Cancel
Save