diff --git a/htroot/api/schema_p.java b/htroot/api/schema_p.java new file mode 100644 index 000000000..c0289f744 --- /dev/null +++ b/htroot/api/schema_p.java @@ -0,0 +1,77 @@ +/** + * schema_p + * Copyright 2011 by Michael Peter Christen, mc@yacy.net, Frankfurt am Main, Germany + * First released 13.01.2012 at http://yacy.net + * + * $LastChangedDate: 2011-04-14 00:04:23 +0200 (Do, 14 Apr 2011) $ + * $LastChangedRevision: 7653 $ + * $LastChangedBy: orbiter $ + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program in the file lgpl21.txt + * If not, see . + */ + +import java.io.File; +import java.util.Iterator; + +import net.yacy.cora.protocol.RequestHeader; +import net.yacy.cora.services.federated.solr.SolrScheme; +import net.yacy.cora.services.federated.solr.SolrScheme.Field; +import net.yacy.cora.storage.ConfigurationSet; +import net.yacy.search.Switchboard; +import net.yacy.search.index.Segments; +import de.anomic.server.serverObjects; +import de.anomic.server.serverSwitch; + +public class schema_p { + + public static serverObjects respond(final RequestHeader header, final serverObjects post, final serverSwitch env) { + // return variable that accumulates replacements + final serverObjects prop = new serverObjects(); + final Switchboard sb = (Switchboard) env; + + // write scheme + SolrScheme scheme = (sb.indexSegments.segment(Segments.Process.LOCALCRAWLING).getSolr() == null) ? null : sb.indexSegments.segment(Segments.Process.LOCALCRAWLING).getSolr().getScheme(); + final String schemename = sb.getConfig("federated.service.solr.indexing.schemefile", "solr.keys.default.list"); + if (scheme == null) { + scheme = new SolrScheme(new File(env.getDataPath(), "DATA/SETTINGS/" + schemename)); + } + final Iterator i = scheme.allIterator(); + + int c = 0; + ConfigurationSet.Entry entry; + Field field = null; + while (i.hasNext()) { + entry = i.next(); + if (!entry.enabled()) continue; //scheme.contains(entry.key()) + try { + field = Field.valueOf(entry.key()); + } catch (IllegalArgumentException e) { + continue; + } + prop.put("fields_" + c + "_name", field.name()); + prop.put("fields_" + c + "_type", field.getType().printName()); + prop.put("fields_" + c + "_comment", scheme.commentHeadline(entry.key())); + 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); + + // return rewrite properties + return prop; + } +} diff --git a/htroot/api/schema_p.xml b/htroot/api/schema_p.xml new file mode 100755 index 000000000..e81ee0cd0 --- /dev/null +++ b/htroot/api/schema_p.xml @@ -0,0 +1,63 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +#{fields}# + + + +#{/fields}# + + + id + description + + +