Lighten solr indexed fields

This commit is contained in:
Serafeim Chatzopoulos 2023-02-15 16:38:48 +02:00
parent 1b37516578
commit d962399377
4 changed files with 120 additions and 205 deletions

View File

@ -133,9 +133,7 @@ public class XmlIndexingJob {
log.info("fields: {}", fields); log.info("fields: {}", fields);
final String xslt = isLookup.getLayoutTransformer(); final String xslt = isLookup.getLayoutTransformer();
log.info("layoutTransformer: {}", xslt);
final String dsId = isLookup.getDsId(format);
log.info("dsId: {}", dsId);
final String zkHost = isLookup.getZkHost(); final String zkHost = isLookup.getZkHost();
log.info("zkHost: {}", zkHost); log.info("zkHost: {}", zkHost);
@ -151,7 +149,7 @@ public class XmlIndexingJob {
.sequenceFile(inputPath, Text.class, Text.class) .sequenceFile(inputPath, Text.class, Text.class)
.map(t -> t._2().toString()) .map(t -> t._2().toString())
.map(s -> toIndexRecord(SaxonTransformerFactory.newInstance(indexRecordXslt), s)) .map(s -> toIndexRecord(SaxonTransformerFactory.newInstance(indexRecordXslt), s))
.map(s -> new StreamingInputDocumentFactory(version, dsId).parseDocument(s)); .map(s -> new StreamingInputDocumentFactory().parseDocument(s));
switch (outputFormat) { switch (outputFormat) {
case SOLR: case SOLR:

View File

@ -36,10 +36,6 @@ public class StreamingInputDocumentFactory {
private static final String INDEX_FIELD_PREFIX = "__"; private static final String INDEX_FIELD_PREFIX = "__";
private static final String DS_VERSION = INDEX_FIELD_PREFIX + "dsversion";
private static final String DS_ID = INDEX_FIELD_PREFIX + "dsid";
private static final String RESULT = "result"; private static final String RESULT = "result";
private static final String INDEX_RESULT = INDEX_FIELD_PREFIX + RESULT; private static final String INDEX_RESULT = INDEX_FIELD_PREFIX + RESULT;
@ -65,25 +61,17 @@ public class StreamingInputDocumentFactory {
private final ThreadLocal<XMLEventFactory> eventFactory = ThreadLocal private final ThreadLocal<XMLEventFactory> eventFactory = ThreadLocal
.withInitial(XMLEventFactory::newInstance); .withInitial(XMLEventFactory::newInstance);
private final String version; private final String resultName;
private final String dsId; public StreamingInputDocumentFactory() {
this(DEFAULTDNETRESULT);
private String resultName = DEFAULTDNETRESULT;
public StreamingInputDocumentFactory(final String version, final String dsId) {
this(version, dsId, DEFAULTDNETRESULT);
} }
public StreamingInputDocumentFactory( public StreamingInputDocumentFactory(final String resultName) {
final String version, final String dsId, final String resultName) {
this.version = version;
this.dsId = dsId;
this.resultName = resultName; this.resultName = resultName;
} }
public SolrInputDocument parseDocument(final String inputDocument) { public SolrInputDocument parseDocument(final String inputDocument) {
final StringWriter results = new StringWriter(); final StringWriter results = new StringWriter();
final List<Namespace> nsList = Lists.newLinkedList(); final List<Namespace> nsList = Lists.newLinkedList();
try { try {
@ -111,14 +99,6 @@ public class StreamingInputDocumentFactory {
} }
} }
if (version != null) {
indexDocument.addField(DS_VERSION, version);
}
if (dsId != null) {
indexDocument.addField(DS_ID, dsId);
}
if (!indexDocument.containsKey(INDEX_RECORD_ID)) { if (!indexDocument.containsKey(INDEX_RECORD_ID)) {
throw new IllegalStateException("cannot extract record ID from: " + inputDocument); throw new IllegalStateException("cannot extract record ID from: " + inputDocument);
} }

View File

@ -39,9 +39,6 @@ import eu.dnetlib.dhp.utils.saxon.SaxonTransformerFactory;
*/ */
public class IndexRecordTransformerTest { public class IndexRecordTransformerTest {
public static final String VERSION = "2021-04-15T10:05:53Z";
public static final String DSID = "b9ee796a-c49f-4473-a708-e7d67b84c16d_SW5kZXhEU1Jlc291cmNlcy9JbmRleERTUmVzb3VyY2VUeXBl";
private ContextMapper contextMapper; private ContextMapper contextMapper;
@BeforeEach @BeforeEach
@ -162,8 +159,7 @@ public class IndexRecordTransformerTest {
final String indexRecordXML = XmlIndexingJob.toIndexRecord(tr, record); final String indexRecordXML = XmlIndexingJob.toIndexRecord(tr, record);
final SolrInputDocument solrDoc = new StreamingInputDocumentFactory(VERSION, DSID) final SolrInputDocument solrDoc = new StreamingInputDocumentFactory().parseDocument(indexRecordXML);
.parseDocument(indexRecordXML);
final String xmlDoc = ClientUtils.toXML(solrDoc); final String xmlDoc = ClientUtils.toXML(solrDoc);

View File

@ -1,175 +1,116 @@
<LAYOUT name="index"> <LAYOUT name="index">
<FIELDS> <FIELDS><!-- <FIELD indexable="false" name="oafentity" result="true" tokenizable="false" xpath="//*[local-name() = 'entity']" stat="false"/> -->
<FIELD indexable="false" name="oafentity" result="true" stat="false" tokenizable="false" xpath="//*[local-name() = 'entity']"/> <FIELD tokenizable="false" value="local-name(//*[local-name()='entity']/*[local-name() != 'extraInfo'])" stat="false" name="oaftype" result="false" indexable="true"/>
<FIELD indexable="true" name="oaftype" result="false" stat="false" tokenizable="false" value="local-name(//*[local-name()='entity']/*[local-name() != 'extraInfo'])"/> <FIELD name="objIdentifier" result="false" tokenizable="false" xpath="//header/dri:objIdentifier" stat="false" indexable="true"/><!-- DATASOURCE FIELDS -->
<FIELD indexable="true" name="objIdentifier" result="false" stat="false" tokenizable="false" xpath="//header/dri:objIdentifier"/><!-- DATASOURCE FIELDS --> <FIELD xpath="//*[local-name()='entity']/*[local-name()='datasource']/officialname" indexable="true" copy="true" stat="false" name="datasourceofficialname" result="false"/>
<FIELD indexable="true" name="datasourceofficialname" result="false" stat="false" xpath="//*[local-name()='entity']/*[local-name()='datasource']/officialname"/> <FIELD stat="false" name="datasourceenglishname" result="false" indexable="true" xpath="//*[local-name()='entity']/*[local-name()='datasource']/englishname" copy="true"/>
<FIELD indexable="true" name="datasourceenglishname" result="false" stat="false" xpath="//*[local-name()='entity']/*[local-name()='datasource']/englishname"/> <FIELD name="datasourceoddescription" xpath="//*[local-name()='entity']/*[local-name()='datasource']/oddescription" stat="false" result="false" indexable="false" copy="true"/>
<FIELD indexable="true" name="datasourceoddescription" result="false" stat="false" xpath="//*[local-name()='entity']/*[local-name()='datasource']/oddescription"/> <FIELD result="false" indexable="true" stat="false" name="datasourceodsubjects" copy="true" tokenizable="false" xpath="//*[local-name()='entity']/*[local-name()='datasource']/odsubjects"/>
<FIELD indexable="true" name="datasourceodsubjects" result="false" stat="false" tokenizable="false" xpath="//*[local-name()='entity']/*[local-name()='datasource']/odsubjects"/> <FIELD indexable="true" tokenizable="false" name="datasourceodlanguages" result="false" xpath="//*[local-name()='entity']/*[local-name()='datasource']/odlanguages" stat="false"/>
<FIELD indexable="true" name="datasourceodlanguages" result="false" stat="false" tokenizable="false" xpath="//*[local-name()='entity']/*[local-name()='datasource']/odlanguages"/> <FIELD xpath="//*[local-name()='entity']/*[local-name()='datasource']/odcontenttypes" stat="false" indexable="true" tokenizable="false" result="false" name="datasourceodcontenttypes"/>
<FIELD indexable="true" name="datasourceodcontenttypes" result="false" stat="false" tokenizable="false" xpath="//*[local-name()='entity']/*[local-name()='datasource']/odcontenttypes"/> <FIELD xpath="//*[local-name()='entity']/*[local-name()='datasource']/datasourcetype/@classname" indexable="true" stat="false" tokenizable="false" result="false" multivalued="false" name="datasourcetypename"/>
<FIELD indexable="true" multivalued="false" name="datasourcetypename" result="false" stat="false" tokenizable="false" xpath="//*[local-name()='entity']/*[local-name()='datasource']/datasourcetype/@classname"/> <FIELD multivalued="false" xpath="//*[local-name()='entity']/*[local-name()='datasource']/datasourcetypeui/@classid" name="datasourcetypeuiid" tokenizable="false" stat="false" result="false" indexable="true"/>
<FIELD indexable="true" multivalued="false" name="datasourcetypeuiid" result="false" stat="false" tokenizable="false" xpath="//*[local-name()='entity']/*[local-name()='datasource']/datasourcetypeui/@classid"/> <FIELD name="datasourcetypeuiname" tokenizable="false" result="false" xpath="//*[local-name()='entity']/*[local-name()='datasource']/datasourcetypeui/@classname" multivalued="false" stat="false" indexable="true"/>
<FIELD indexable="true" multivalued="false" name="datasourcetypeuiname" result="false" stat="false" tokenizable="false" xpath="//*[local-name()='entity']/*[local-name()='datasource']/datasourcetypeui/@classname"/> <FIELD indexable="true" multivalued="false" stat="false" result="false" name="datasourcecompatibilityid" tokenizable="false" xpath="//*[local-name()='entity']/*[local-name()='datasource']/openairecompatibility/@classid"/>
<FIELD indexable="true" multivalued="false" name="datasourcecompatibilityid" result="false" stat="false" tokenizable="false" xpath="//*[local-name()='entity']/*[local-name()='datasource']/openairecompatibility/@classid"/> <FIELD name="datasourcecompatibilityname" xpath="//*[local-name()='entity']/*[local-name()='datasource']/openairecompatibility/@classname" result="false" stat="false" indexable="true" multivalued="false" tokenizable="false"/>
<FIELD indexable="true" multivalued="false" name="datasourcecompatibilityname" result="false" stat="false" tokenizable="false" xpath="//*[local-name()='entity']/*[local-name()='datasource']/openairecompatibility/@classname"/> <FIELD result="false" multivalued="true" indexable="true" type="ngramtext" xpath="//*[local-name()='entity']/*[local-name()='datasource']/subjects" copy="true" stat="false" name="datasourcesubject"/><!-- <FIELD indexable="true" stat="false" tokenizable="false" xpath="//*[local-name()='entity']/*[local-name()='datasource']/versioning" result="false" name="versioning"/> --><!-- datasource fields for EOSC -->
<FIELD indexable="true" multivalued="true" name="datasourcesubject" result="false" stat="false" type="ngramtext" xpath="//*[local-name()='entity']/*[local-name()='datasource']/subjects"/> <FIELD name="datasourcejurisdiction" result="false" xpath="//*[local-name()='entity']/*[local-name()='datasource']/jurisdiction/@classname" tokenizable="false" stat="false" indexable="true"/>
<FIELD indexable="true" name="versioning" result="false" stat="false" tokenizable="false" xpath="//*[local-name()='entity']/*[local-name()='datasource']/versioning"/> <FIELD xpath="//*[local-name()='entity']/*[local-name()='datasource']/thematic" name="datasourcethematic" indexable="true" tokenizable="false" stat="false" result="false"/><!-- <FIELD xpath="//*[local-name()='entity']/*[local-name()='datasource']/contentpolicy/@classname" indexable="true" result="false" tokenizable="false" name="datasourcecontentpolicy" stat="false"/> -->
<!-- datasource fields for EOSC --> <FIELD tokenizable="false" result="false" xpath="//*[local-name()='entity']/*[local-name()='datasource']/eosctype/@classname" stat="false" indexable="true" name="eosctype"/>
<FIELD indexable="true" name="datasourcejurisdiction" result="false" stat="false" tokenizable="false" xpath="//*[local-name()='entity']/*[local-name()='datasource']/jurisdiction"/> <FIELD xpath="//*[local-name()='entity']/*[local-name()='datasource']/eoscdatasourcetype/@classname" stat="false" indexable="true" name="eoscdatasourcetype" tokenizable="false" result="false"/><!-- ORGANIZATION FIELDS --><!-- ORGANIZATION FIELDS --><!-- ORGANIZATION FIELDS -->
<FIELD indexable="true" name="datasourcethematic" result="false" stat="false" tokenizable="false" xpath="//*[local-name()='entity']/*[local-name()='datasource']/thematic"/> <FIELD result="false" copy="true" stat="false" type="ngramtext" xpath="distinct-values(//*[local-name()='entity']/*[local-name()='organization']//legalshortname)" indexable="true" name="organizationlegalshortname"/>
<FIELD indexable="true" name="datasourceknowledge_graph" result="false" stat="false" tokenizable="false" xpath="//*[local-name()='entity']/*[local-name()='datasource']/knowledgegraph"/> <FIELD indexable="true" result="false" copy="true" name="organizationlegalname" type="ngramtext" stat="false" xpath="distinct-values(//*[local-name()='entity']/*[local-name()='organization']//legalname)"/>
<FIELD indexable="true" name="datasourcecontentpolicy" result="false" stat="false" tokenizable="false" xpath="//*[local-name()='entity']/*[local-name()='datasource']/contentpolicy"/> <FIELD copy="true" xpath="distinct-values(//*[local-name()='entity']/*[local-name()='organization']//alternativeNames)" indexable="false" result="false" stat="false" name="organizationalternativenames" type="ngramtext"/><!-- <FIELD xpath="//*[local-name()='entity']/*[local-name()='organization']/eclegalbody" indexable="true" name="organizationeclegalbody" stat="false" result="false"/> --><!-- <FIELD indexable="true" name="organizationeclegalperson" stat="false" xpath="//*[local-name()='entity']/*[local-name()='organization']/eclegalperson" result="false"/> --><!-- <FIELD name="organizationecnonprofit" indexable="true" result="false" stat="false" xpath="//*[local-name()='entity']/*[local-name()='organization']/ecnonprofit"/> --><!-- <FIELD name="organizationecresearchorganization" result="false" xpath="//*[local-name()='entity']/*[local-name()='organization']/ecresearchorganization" indexable="true" stat="false"/> --><!-- <FIELD name="organizationecinternationalorganizationeurinterests" result="false" indexable="true" stat="false" xpath="//*[local-name()='entity']/*[local-name()='organization']/ecinternationalorganizationeurinterests"/> --><!-- <FIELD indexable="true" stat="false" name="organizationecinternationalorganization" xpath="//*[local-name()='entity']/*[local-name()='organization']/ecinternationalorganization" result="false"/> --><!-- <FIELD result="false" indexable="true" name="organizationecenterprise" stat="false" xpath="//*[local-name()='entity']/*[local-name()='organization']/ecenterprise"/> --><!-- <FIELD result="false" indexable="true" name="organizationecsmevalidated" xpath="//*[local-name()='entity']/*[local-name()='organization']/ecsmevalidated" stat="false"/> --><!-- <FIELD stat="false" name="organizationecnutscode" result="false" indexable="true" xpath="//*[local-name()='entity']/*[local-name()='organization']/ecnutscode"/> --><!-- <FIELD name="organizationcountryname" multivalued="false" tokenizable="false" indexable="true" xpath="//*[local-name()='entity']/*[local-name()='organization']/country/@classname" stat="false" result="false"/> --><!-- PROJECT FIELDS -->
<!-- ORGANIZATION FIELDS --> <FIELD stat="false" name="projectcode" copy="true" xpath="//*[local-name()='entity']/*[local-name()='project']/code" type="ngramtext" result="false" indexable="false"/>
<FIELD indexable="true" name="organizationlegalshortname" result="false" stat="false" type="ngramtext" xpath="distinct-values(//*[local-name()='entity']/*[local-name()='organization']//legalshortname)"/> <FIELD result="false" name="projectcode_nt" tokenizable="false" stat="false" indexable="true" xpath="//*[local-name()='entity']/*[local-name()='project']/code"/>
<FIELD indexable="true" name="organizationlegalname" result="false" stat="false" type="ngramtext" xpath="distinct-values(//*[local-name()='entity']/*[local-name()='organization']//legalname)"/> <FIELD xpath="//*[local-name()='entity']/*[local-name()='project']/acronym" name="projectacronym" stat="false" type="ngramtext" indexable="true" copy="true" result="false"/>
<FIELD indexable="true" name="organizationalternativenames" result="false" stat="false" type="ngramtext" xpath="distinct-values(//*[local-name()='entity']/*[local-name()='organization']//alternativeNames)"/> <FIELD name="projecttitle" xpath="//*[local-name()='entity']/*[local-name()='project']/title" result="false" type="ngramtext" indexable="true" stat="false" copy="true"/>
<FIELD indexable="true" name="organizationeclegalbody" result="false" stat="false" xpath="//*[local-name()='entity']/*[local-name()='organization']/eclegalbody"/> <FIELD result="false" indexable="true" multivalued="false" value="//*[local-name()='entity']/*[local-name()='project']/startdate" name="projectstartdate" type="date" stat="false"/>
<FIELD indexable="true" name="organizationeclegalperson" result="false" stat="false" xpath="//*[local-name()='entity']/*[local-name()='organization']/eclegalperson"/> <FIELD indexable="true" multivalued="false" result="false" tokenizable="false" name="projectstartyear" stat="false" value="dnet:extractYear(//*[local-name()='entity']/*[local-name()='project']/startdate)"/>
<FIELD indexable="true" name="organizationecnonprofit" result="false" stat="false" xpath="//*[local-name()='entity']/*[local-name()='organization']/ecnonprofit"/> <FIELD stat="false" type="date" name="projectenddate" indexable="true" result="false" multivalued="false" value="//*[local-name()='entity']/*[local-name()='project']/enddate"/>
<FIELD indexable="true" name="organizationecresearchorganization" result="false" stat="false" xpath="//*[local-name()='entity']/*[local-name()='organization']/ecresearchorganization"/> <FIELD indexable="true" multivalued="false" tokenizable="false" stat="false" value="dnet:extractYear(//*[local-name()='entity']/*[local-name()='project']/enddate)" name="projectendyear" result="false"/>
<FIELD indexable="true" name="organizationecinternationalorganizationeurinterests" result="false" stat="false" xpath="//*[local-name()='entity']/*[local-name()='organization']/ecinternationalorganizationeurinterests"/> <FIELD multivalued="false" stat="false" xpath="//*[local-name()='entity']/*[local-name()='project']/callidentifier" indexable="true" result="false" name="projectcallidentifier" tokenizable="false"/>
<FIELD indexable="true" name="organizationecinternationalorganization" result="false" stat="false" xpath="//*[local-name()='entity']/*[local-name()='organization']/ecinternationalorganization"/> <FIELD name="projectkeywords" copy="true" xpath="//*[local-name()='entity']/*[local-name()='project']/keywords" indexable="false" stat="false" result="false"/>
<FIELD indexable="true" name="organizationecenterprise" result="false" stat="false" xpath="//*[local-name()='entity']/*[local-name()='organization']/ecenterprise"/> <FIELD result="false" xpath="//*[local-name()='entity']/*[local-name()='project']/duration" name="projectduration" multivalued="false" stat="false" indexable="true" tokenizable="false"/>
<FIELD indexable="true" name="organizationecsmevalidated" result="false" stat="false" xpath="//*[local-name()='entity']/*[local-name()='organization']/ecsmevalidated"/> <FIELD stat="false" result="false" multivalued="false" xpath="distinct-values(//*[local-name()='entity']/*[local-name()='project']/ecsc39)" indexable="true" tokenizable="false" name="projectecsc39"/>
<FIELD indexable="true" name="organizationecnutscode" result="false" stat="false" xpath="//*[local-name()='entity']/*[local-name()='organization']/ecnutscode"/> <FIELD result="false" tokenizable="false" indexable="true" name="projectoamandatepublications" multivalued="false" xpath="//*[local-name()='entity']/*[local-name()='project']/oamandatepublications" stat="false"/><!-- <FIELD indexable="true" result="false" tokenizable="false" name="projectecarticle29_3" multivalued="false" stat="false" xpath="//*[local-name()='entity']/*[local-name()='project']/ecarticle29_3"/> --><!-- <FIELD tokenizable="false" name="projectsubject" stat="false" indexable="true" result="false" xpath="//*[local-name()='entity']/*[local-name()='project']/subjects"/> --><!-- <FIELD result="false" stat="false" indexable="true" name="projectcontracttypename" xpath="//*[local-name()='entity']/*[local-name()='project']/contracttype/@classname" multivalued="false" tokenizable="false"/> -->
<FIELD indexable="true" multivalued="false" name="organizationcountryname" result="false" stat="false" tokenizable="false" xpath="//*[local-name()='entity']/*[local-name()='organization']/country/@classname"/> <FIELD name="fundinglevel0_id" xpath="//*[local-name()='entity']/*[local-name()='project']/fundingtree//funding_level_0/id" tokenizable="false" stat="false" indexable="true" result="false"/>
<!-- PROJECT FIELDS --> <FIELD stat="false" result="false" xpath="//*[local-name()='entity']/*[local-name()='project']/fundingtree//funding_level_0/name" tokenizable="false" indexable="true" name="fundinglevel0_name"/>
<FIELD indexable="true" name="projectcode" result="false" stat="false" type="ngramtext" xpath="//*[local-name()='entity']/*[local-name()='project']/code"/> <FIELD stat="false" indexable="false" xpath="//*[local-name()='entity']/*[local-name()='project']/fundingtree//funding_level_0/description" result="false" copy="true" name="fundinglevel0_description"/>
<FIELD indexable="true" name="projectcode_nt" result="false" stat="false" tokenizable="false" xpath="//*[local-name()='entity']/*[local-name()='project']/code"/> <FIELD name="fundinglevel1_id" tokenizable="false" stat="false" indexable="true" result="false" xpath="//*[local-name()='entity']/*[local-name()='project']/fundingtree//funding_level_1/id"/>
<FIELD indexable="true" name="projectacronym" result="false" stat="false" type="ngramtext" xpath="//*[local-name()='entity']/*[local-name()='project']/acronym"/> <FIELD indexable="true" result="false" xpath="//*[local-name()='entity']/*[local-name()='project']/fundingtree//funding_level_1/name" tokenizable="false" name="fundinglevel1_name" stat="false"/>
<FIELD indexable="true" name="projecttitle" result="false" stat="false" type="ngramtext" xpath="//*[local-name()='entity']/*[local-name()='project']/title"/> <FIELD xpath="//*[local-name()='entity']/*[local-name()='project']/fundingtree//funding_level_1/description" result="false" stat="false" copy="true" indexable="false" name="fundinglevel1_description"/>
<FIELD indexable="true" multivalued="false" name="projectstartdate" result="false" stat="false" type="pdate" value="//*[local-name()='entity']/*[local-name()='project']/startdate"/> <FIELD name="fundinglevel2_id" result="false" xpath="//*[local-name()='entity']/*[local-name()='project']/fundingtree//funding_level_2/id" indexable="true" stat="false" tokenizable="false"/>
<FIELD indexable="true" multivalued="false" name="projectstartyear" result="false" stat="false" tokenizable="false" value="dnet:extractYear(//*[local-name()='entity']/*[local-name()='project']/startdate)"/> <FIELD stat="false" tokenizable="false" indexable="true" name="fundinglevel2_name" xpath="//*[local-name()='entity']/*[local-name()='project']/fundingtree//funding_level_2/name" result="false"/>
<FIELD indexable="true" multivalued="false" name="projectenddate" result="false" stat="false" type="pdate" value="//*[local-name()='entity']/*[local-name()='project']/enddate"/> <FIELD indexable="false" name="fundinglevel2_description" copy="true" result="false" stat="false" xpath="//*[local-name()='entity']/*[local-name()='project']/fundingtree//funding_level_2/description"/><!-- PROJECTS' FUNDER FIELDS: indexable only with the new funding path/context handling -->
<FIELD indexable="true" multivalued="false" name="projectendyear" result="false" stat="false" tokenizable="false" value="dnet:extractYear(//*[local-name()='entity']/*[local-name()='project']/enddate)"/> <FIELD indexable="true" name="funder" stat="false" tokenizable="false" xpath="//*[local-name()='entity']/*[local-name()='project']/fundingtree/funder" result="false" value="concat(./id/text(), '||', ./name/text(), '||', ./shortname/text())"/>
<FIELD indexable="true" multivalued="false" name="projectcallidentifier" result="false" stat="false" tokenizable="false" xpath="//*[local-name()='entity']/*[local-name()='project']/callidentifier"/> <FIELD stat="false" indexable="true" name="fundershortname" xpath="//*[local-name()='entity']/*[local-name()='project']/fundingtree/funder/shortname" result="false" tokenizable="false"/>
<FIELD indexable="true" name="projectkeywords" result="false" stat="false" xpath="//*[local-name()='entity']/*[local-name()='project']/keywords"/> <FIELD stat="false" indexable="true" xpath="//*[local-name()='entity']/*[local-name()='project']/fundingtree/funder/id" result="false" tokenizable="false" name="funderid"/><!-- <FIELD indexable="true" tokenizable="false" result="false" stat="false" name="fundername" xpath="//*[local-name()='entity']/*[local-name()='project']/fundingtree/funder/name"/> --><!-- <FIELD indexable="true" result="false" xpath="//*[local-name()='entity']/*[local-name()='project']/fundingtree/funder/originalname" tokenizable="false" stat="false" name="funderoriginalname"/> --><!-- <FIELD tokenizable="false" result="false" name="funderjurisdiction" indexable="true" stat="false" xpath="//*[local-name()='entity']/*[local-name()='project']/fundingtree/funder/jurisdiction"/> --><!-- RESULT FIELDS -->
<FIELD indexable="true" multivalued="false" name="projectduration" result="false" stat="false" tokenizable="false" xpath="//*[local-name()='entity']/*[local-name()='project']/duration"/> <FIELD xpath="//*[local-name() = 'entity']/*[local-name() ='result']/title | //*[local-name()='entity']/*[local-name()='result']/children/result/title" name="resulttitle" copy="true" indexable="true" type="text_en" stat="false" result="false"/>
<FIELD indexable="true" multivalued="false" name="projectecsc39" result="false" stat="false" tokenizable="false" xpath="distinct-values(//*[local-name()='entity']/*[local-name()='project']/ecsc39)"/> <FIELD result="false" name="resultsubject" indexable="true" xpath="distinct-values(//*[local-name()='entity']/*[local-name()='result']/subject)" type="text_en" stat="false"/><!-- <FIELD tokenizable="false" indexable="true" result="false" stat="false" name="resultsubjectclass" xpath="distinct-values(//*[local-name()='entity']/*[local-name()='result']/subject/@classname)"/> -->
<FIELD indexable="true" multivalued="false" name="projectoamandatepublications" result="false" stat="false" tokenizable="false" xpath="//*[local-name()='entity']/*[local-name()='project']/oamandatepublications"/> <FIELD multivalued="false" result="false" name="resultembargoenddate" value="//*[local-name()='entity']/*[local-name()='result']/embargoenddate" type="date" stat="false" indexable="true"/>
<FIELD indexable="true" multivalued="false" name="projectecarticle29_3" result="false" stat="false" tokenizable="false" xpath="//*[local-name()='entity']/*[local-name()='project']/ecarticle29_3"/> <FIELD tokenizable="false" multivalued="false" indexable="true" value="dnet:extractYear(//*[local-name()='entity']/*[local-name()='result']/embargoenddate)" result="false" stat="false" name="resultembargoendyear"/>
<FIELD indexable="true" name="projectsubject" result="false" stat="false" tokenizable="false" xpath="//*[local-name()='entity']/*[local-name()='project']/subjects"/> <FIELD stat="false" xpath="//*[local-name()='entity']/*[local-name()='result']/resulttype/@classid" result="false" tokenizable="false" multivalued="false" indexable="true" name="resulttypeid"/><!-- <FIELD indexable="true" tokenizable="false" stat="false" multivalued="false" xpath="//*[local-name()='entity']/*[local-name()='result']/resulttype/@classname" result="false" name="resulttypename"/> -->
<FIELD indexable="true" multivalued="false" name="projectcontracttypename" result="false" stat="false" tokenizable="false" xpath="//*[local-name()='entity']/*[local-name()='project']/contracttype/@classname"/> <FIELD stat="false" xpath="//*[local-name()='entity']/*[local-name()='result']/language/@classname" result="false" multivalued="false" tokenizable="false" indexable="true" name="resultlanguagename"/>
<FIELD indexable="true" name="fundinglevel0_id" result="false" stat="false" tokenizable="false" xpath="//*[local-name()='entity']/*[local-name()='project']/fundingtree//funding_level_0/id"/> <FIELD name="resultpublisher" copy="true" xpath="//*[local-name()='entity']/*[local-name()='result']/*[local-name()='publisher']" indexable="true" result="false" stat="false"/>
<FIELD indexable="true" name="fundinglevel0_name" result="false" stat="false" tokenizable="false" xpath="//*[local-name()='entity']/*[local-name()='project']/fundingtree//funding_level_0/name"/> <FIELD type="text_en" name="resultdescription" stat="false" copy="true" result="false" indexable="true" xpath="//*[local-name()='entity']/*[local-name()='result']//*[local-name()='description']"/><!-- <FIELD tokenizable="false" stat="false" indexable="true" xpath="//*[local-name()='entity']/*[local-name()='result']/children/instance/license" name="resultlicense" result="false"/> --><!-- <FIELD result="false" indexable="false" stat="false" tokenizable="false" xpath="//*[local-name()='entity']/*[local-name()='result']/children/instance/accessright/@classname" name="resultaccessright"/> --><!-- <FIELD name="resultresourcetypename" indexable="true" result="false" type="string_ci" xpath="//*[local-name()='entity']/*[local-name()='result']/resourcetype/@classname" stat="false"/> -->
<FIELD indexable="true" name="fundinglevel0_description" result="false" stat="false" xpath="//*[local-name()='entity']/*[local-name()='project']/fundingtree//funding_level_0/description"/> <FIELD xpath="distinct-values(//*[local-name()='entity']/*[local-name()='result']/bestaccessright/@classname)" tokenizable="false" result="false" multivalued="false" name="resultbestaccessright" indexable="true" stat="false"/>
<FIELD indexable="true" name="fundinglevel1_id" result="false" stat="false" tokenizable="false" xpath="//*[local-name()='entity']/*[local-name()='project']/fundingtree//funding_level_1/id"/> <FIELD value="//*[local-name()='entity']/*[local-name()='result']/dateofacceptance" multivalued="false" result="false" stat="false" type="date" name="resultdateofacceptance" indexable="true"/>
<FIELD indexable="true" name="fundinglevel1_name" result="false" stat="false" tokenizable="false" xpath="//*[local-name()='entity']/*[local-name()='project']/fundingtree//funding_level_1/name"/> <FIELD copy="true" indexable="true" tokenizable="false" result="false" multivalued="false" value="dnet:extractYear(//*[local-name()='entity']/*[local-name()='result']/dateofacceptance)" stat="false" name="resultacceptanceyear"/>
<FIELD indexable="true" name="fundinglevel1_description" result="false" stat="false" xpath="//*[local-name()='entity']/*[local-name()='project']/fundingtree//funding_level_1/description"/> <FIELD xpath="//*[local-name()='entity']/*[local-name()='result']/creator" indexable="true" copy="true" multivalued="true" name="resultauthor" result="false" stat="false"/><!-- <FIELD xpath="//*[local-name()='entity']/*[local-name()='result']/creator" multivalued="true" stat="false" result="false" name="resultauthor_nt" indexable="true" type="string_ci"/> -->
<FIELD indexable="true" name="fundinglevel2_id" result="false" stat="false" tokenizable="false" xpath="//*[local-name()='entity']/*[local-name()='project']/fundingtree//funding_level_2/id"/> <FIELD type="string_ci" name="authorid" multivalued="true" xpath="//*[local-name()='entity']/*[local-name()='result']/creator/@*[local-name() != 'rank' and local-name() != 'name' and local-name() != 'surname']" result="false" stat="false" indexable="true"/><!-- <FIELD type="string_ci" multivalued="true" result="false" stat="false" indexable="true" xpath="//*[local-name()='entity']/*[local-name()='result']/creator/@*[local-name() != 'rank' and local-name() != 'name' and local-name() != 'surname']/local-name()" name="authoridtype"/> -->
<FIELD indexable="true" name="fundinglevel2_name" result="false" stat="false" tokenizable="false" xpath="//*[local-name()='entity']/*[local-name()='project']/fundingtree//funding_level_2/name"/> <FIELD xpath="//*[local-name()='entity']/*[local-name()='result']/creator" result="false" multivalued="true" name="orcidtypevalue" indexable="true" value="string-join((./@*[local-name() = 'orcid' or local-name() = 'orcid_pending'], ./@*[local-name() = 'orcid' or local-name() = 'orcid_pending']/local-name()), '||' )" stat="false" type="string_ci"/>
<FIELD indexable="true" name="fundinglevel2_description" result="false" stat="false" xpath="//*[local-name()='entity']/*[local-name()='project']/fundingtree//funding_level_2/description"/><!-- PROJECTS' FUNDER FIELDS: indexable only with the new funding path/context handling --> <FIELD name="resulthostingdatasource" result="false" tokenizable="false" xpath="//*[local-name()='entity']/*[local-name()='result']/children/instance/*[local-name()='hostedby']" value="distinct-values(concat(./@id, '||', ./@name))" indexable="true" stat="false"/>
<FIELD indexable="true" name="funder" result="false" stat="false" tokenizable="false" value="concat(./id/text(), '||', ./name/text(), '||', ./shortname/text())" xpath="//*[local-name()='entity']/*[local-name()='project']/fundingtree/funder"/> <FIELD stat="false" tokenizable="false" indexable="true" name="resulthostingdatasourceid" result="false" xpath="distinct-values(//*[local-name()='entity']/*[local-name()='result']/children/instance/*[local-name()='hostedby']/@id)"/><!-- <FIELD tokenizable="false" xpath="distinct-values(//*[local-name()='entity']/*[local-name()='result']/children/instance/*[local-name()='hostedby']/@name)" result="false" stat="false" indexable="true" name="resulthostingdatasourcename"/> -->
<FIELD indexable="true" name="fundershortname" result="false" stat="false" tokenizable="false" xpath="//*[local-name()='entity']/*[local-name()='project']/fundingtree/funder/shortname"/> <FIELD name="instancetypename" stat="false" tokenizable="false" xpath="distinct-values(//*[local-name()='entity']/*[local-name()='result']/children/instance/*[local-name()='instancetype']/@classname)" indexable="true" result="false"/>
<FIELD indexable="true" name="funderid" result="false" stat="false" tokenizable="false" xpath="//*[local-name()='entity']/*[local-name()='project']/fundingtree/funder/id"/> <FIELD xpath="//*[local-name()='entity']/*//children/result/@objidentifier" name="resultdupid" stat="false" indexable="true" result="false" tokenizable="false"/>
<FIELD indexable="true" name="fundername" result="false" stat="false" tokenizable="false" xpath="//*[local-name()='entity']/*[local-name()='project']/fundingtree/funder/name"/> <FIELD result="false" indexable="true" xpath="//*[local-name()='entity']/*//children/organization/@objidentifier" tokenizable="false" stat="false" name="organizationdupid"/><!-- <FIELD result="false" indexable="true" tokenizable="false" xpath="distinct-values(//*[local-name()='entity']/*//children/externalreference/sitename)" name="externalrefsite" stat="false"/> -->
<FIELD indexable="true" name="funderoriginalname" result="false" stat="false" tokenizable="false" xpath="//*[local-name()='entity']/*[local-name()='project']/fundingtree/funder/originalname"/> <FIELD tokenizable="true" xpath="distinct-values(//*[local-name()='entity']/*//children/externalreference/label)" stat="false" result="false" name="externalreflabel" indexable="false" copy="true"/><!-- <FIELD result="false" xpath="distinct-values(//*[local-name()='entity']/*//children/externalreference/qualifier/@classid)" name="externalrefclass" stat="false" tokenizable="false" indexable="true"/> --><!-- <FIELD result="false" tokenizable="false" indexable="true" stat="false" xpath="(//*[local-name()='entity']/*//children/externalreference/refidentifier)" name="externalrefid"/> -->
<FIELD indexable="true" name="funderjurisdiction" result="false" stat="false" tokenizable="false" xpath="//*[local-name()='entity']/*[local-name()='project']/fundingtree/funder/jurisdiction"/><!-- RESULT FIELDS --> <FIELD name="resultidentifier" type="string_ci" result="false" copy="true" xpath="distinct-values(//*[local-name()='entity']/*[local-name()='result']/children/instance/webresource/*[local-name()='url'])" indexable="true" stat="false"/>
<FIELD indexable="true" name="resulttitle" result="false" stat="false" xpath="//*[local-name() = 'entity']/*[local-name() ='result']/title | //*[local-name()='entity']/*[local-name()='result']/children/result/title"/> <FIELD indexable="false" stat="false" xpath="distinct-values(//*[local-name()='entity']/*[local-name()='result']/source)" copy="true" result="false" name="resultsource"/>
<FIELD indexable="true" name="resultsubject" result="false" stat="false" tokenizable="false" xpath="distinct-values(//*[local-name()='entity']/*[local-name()='result']/subject)"/> <FIELD xpath="distinct-values(//*[local-name() = 'result']/eoscifguidelines/@code)" result="false" stat="false" indexable="true" name="eoscifguidelines" tokenizable="false"/><!-- FOS and SDGs non tokenizable for faceted search-->
<FIELD indexable="true" name="resultsubjectclass" result="false" stat="false" tokenizable="false" xpath="distinct-values(//*[local-name()='entity']/*[local-name()='result']/subject/@classname)"/> <FIELD stat="false" name="fos" result="false" tokenizable="false" xpath="distinct-values(//*[local-name()='entity']/*[local-name()='result']/subject[@classid='FOS'])" indexable="true"/>
<FIELD indexable="true" multivalued="false" name="resultembargoenddate" result="false" stat="false" type="pdate" value="//*[local-name()='entity']/*[local-name()='result']/embargoenddate"/> <FIELD tokenizable="false" name="sdg" stat="false" indexable="true" result="false" xpath="distinct-values(//*[local-name()='entity']/*[local-name()='result']/subject[@classid='SDG'])"/><!-- REL FIELDS -->
<FIELD indexable="true" multivalued="false" name="resultembargoendyear" result="false" stat="false" tokenizable="false" value="dnet:extractYear(//*[local-name()='entity']/*[local-name()='result']/embargoenddate)"/> <FIELD indexable="true" xpath="distinct-values(//*[local-name()='entity']/*//rel[./to/@type='datasource']/openairecompatibility/@classid)" stat="false" tokenizable="false" name="reldatasourcecompatibilityid" result="false"/>
<FIELD indexable="true" multivalued="false" name="resulttypeid" result="false" stat="false" tokenizable="false" xpath="//*[local-name()='entity']/*[local-name()='result']/resulttype/@classid"/> <FIELD result="false" stat="false" tokenizable="false" name="relproject" value="distinct-values(concat(./text(), '||', dnet:pickFirst(../acronym/text(), ../title/text())))" xpath="//*[local-name()='entity']/*//rel/to[@type='project']" indexable="true"/>
<FIELD indexable="true" multivalued="false" name="resulttypename" result="false" stat="false" tokenizable="false" xpath="//*[local-name()='entity']/*[local-name()='result']/resulttype/@classname"/> <FIELD indexable="true" result="false" stat="false" xpath="distinct-values(//*[local-name()='entity']/*//rel/to[@type='project'])" name="relprojectid" tokenizable="false"/>
<FIELD indexable="true" multivalued="false" name="resultlanguagename" result="false" stat="false" tokenizable="false" xpath="//*[local-name()='entity']/*[local-name()='result']/language/@classname"/> <FIELD result="false" stat="false" indexable="true" name="relprojectcode" tokenizable="false" xpath="distinct-values(//*[local-name()='entity']/*//rel[./to/@type='project']/code)"/>
<FIELD indexable="true" name="resultpublisher" result="false" stat="false" xpath="//*[local-name()='entity']/*[local-name()='result']/*[local-name()='publisher']"/> <FIELD indexable="true" xpath="distinct-values(//*[local-name()='entity']/*//rel[./to/@type='project']/acronym)" name="relprojectname" stat="false" result="false" copy="true" tokenizable="false"/>
<FIELD indexable="true" name="resultdescription" result="false" stat="false" xpath="//*[local-name()='entity']/*[local-name()='result']//*[local-name()='description']"/> <FIELD indexable="false" stat="false" name="relprojecttitle" xpath="distinct-values(//*[local-name()='entity']/*//rel[./to/@type='project']/title)" result="false" copy="true"/><!-- <FIELD indexable="true" stat="false" name="relcontracttypeid" result="false" tokenizable="false" xpath="distinct-values(//*[local-name()='entity']/*//rel[./to/@type='project']/contracttype/@classid)"/> -->
<FIELD indexable="true" name="resultlicense" result="false" stat="false" tokenizable="false" xpath="//*[local-name()='entity']/*[local-name()='result']/children/instance/license"/> <FIELD copy="true" xpath="distinct-values(//*[local-name()='entity']/*//rel[./to/@type='project']/contracttype/@classname)" result="false" stat="false" indexable="false" name="relcontracttypename"/>
<FIELD indexable="true" name="resultaccessright" result="false" stat="false" tokenizable="false" xpath="//*[local-name()='entity']/*[local-name()='result']/children/instance/accessright/@classname"/> <FIELD result="false" xpath="distinct-values(//*[local-name()='entity']/*//rel[./to/@type='organization']/country/@classid)" name="relorganizationcountryid" tokenizable="false" indexable="true" stat="false"/>
<FIELD indexable="true" multivalued="false" name="resultbestaccessright" result="false" stat="false" tokenizable="false" xpath="distinct-values(//*[local-name()='entity']/*[local-name()='result']/bestaccessright/@classname)"/> <FIELD stat="false" xpath="distinct-values(//*[local-name()='entity']/*//rel[./to/@type='organization']/country/@classname)" copy="true" result="false" name="relorganizationcountryname" indexable="false"/>
<FIELD indexable="true" multivalued="false" name="resultdateofacceptance" result="false" stat="false" type="pdate" value="//*[local-name()='entity']/*[local-name()='result']/dateofacceptance"/> <FIELD tokenizable="false" indexable="true" result="false" xpath="distinct-values(//*[local-name()='entity']/*//rel/to[@type='organization'])" stat="false" name="relorganizationid"/>
<FIELD indexable="true" multivalued="false" name="resultacceptanceyear" result="false" stat="false" tokenizable="false" value="dnet:extractYear(//*[local-name()='entity']/*[local-name()='result']/dateofacceptance)"/> <FIELD indexable="true" name="relorganizationname" copy="true" result="false" stat="false" xpath="distinct-values(//*[local-name()='entity']/*//rel[./to/@type='organization']/legalname)"/>
<FIELD indexable="true" multivalued="true" name="resultauthor" result="false" stat="false" xpath="//*[local-name()='entity']/*[local-name()='result']/creator"/> <FIELD name="relorganizationshortname" indexable="true" copy="true" xpath="distinct-values(//*[local-name()='entity']/*//rel[./to/@type='organization']/legalshortname)" stat="false" result="false"/><!-- <FIELD xpath="distinct-values(//*[local-name()='entity']/*//rel/to[@type='result'])" stat="false" result="false" indexable="true" name="relresultid" tokenizable="false"/> -->
<FIELD indexable="true" multivalued="true" name="resultauthor_nt" result="false" stat="false" type="string_ci" xpath="//*[local-name()='entity']/*[local-name()='result']/creator"/> <FIELD stat="false" tokenizable="false" indexable="true" result="false" name="relresulttype" xpath="distinct-values(//*[local-name()='entity']/*//rel/to/@type)"/>
<FIELD indexable="true" multivalued="true" name="authorid" result="false" stat="false" type="string_ci" xpath="//*[local-name()='entity']/*[local-name()='result']/creator/@*[local-name() != 'rank' and local-name() != 'name' and local-name() != 'surname']"/> <FIELD name="relclass" stat="false" result="false" xpath="distinct-values(//*[local-name()='entity']/*//rel/to/@class)" tokenizable="false" indexable="true"/>
<FIELD indexable="true" multivalued="true" name="authoridtype" result="false" stat="false" type="string_ci" xpath="//*[local-name()='entity']/*[local-name()='result']/creator/@*[local-name() != 'rank' and local-name() != 'name' and local-name() != 'surname']/local-name()"/> <FIELD tokenizable="false" xpath="//*[local-name()='entity']//rel/funding/funding_level_0" indexable="true" result="false" name="relfundinglevel0_id" stat="false"/>
<FIELD indexable="true" multivalued="true" name="orcidtypevalue" result="false" stat="false" type="string_ci" value="string-join((./@*[local-name() = 'orcid' or local-name() = 'orcid_pending'], ./@*[local-name() = 'orcid' or local-name() = 'orcid_pending']/local-name()), '||' )" xpath="//*[local-name()='entity']/*[local-name()='result']/creator"/> <FIELD result="false" indexable="true" tokenizable="false" stat="false" xpath="//*[local-name()='entity']//rel/funding/funding_level_0/@name/string()" name="relfundinglevel0_name"/>
<FIELD indexable="true" name="resulthostingdatasource" result="false" stat="false" tokenizable="false" value="distinct-values(concat(./@id, '||', ./@name))" xpath="//*[local-name()='entity']/*[local-name()='result']/children/instance/*[local-name()='hostedby']"/> <FIELD name="relfundinglevel1_id" tokenizable="false" xpath="//*[local-name()='entity']//rel/funding/funding_level_1" stat="false" result="false" indexable="true"/>
<FIELD indexable="true" name="resulthostingdatasourceid" result="false" stat="false" tokenizable="false" xpath="distinct-values(//*[local-name()='entity']/*[local-name()='result']/children/instance/*[local-name()='hostedby']/@id)"/> <FIELD result="false" tokenizable="false" stat="false" indexable="true" xpath="//*[local-name()='entity']//rel/funding/funding_level_1/@name/string()" name="relfundinglevel1_name"/>
<FIELD indexable="true" name="resulthostingdatasourcename" result="false" stat="false" tokenizable="false" xpath="distinct-values(//*[local-name()='entity']/*[local-name()='result']/children/instance/*[local-name()='hostedby']/@name)"/> <FIELD xpath="//*[local-name()='entity']//rel/funding/funding_level_2" indexable="true" name="relfundinglevel2_id" result="false" tokenizable="false" stat="false"/>
<FIELD indexable="true" name="instancetypename" result="false" stat="false" tokenizable="false" xpath="distinct-values(//*[local-name()='entity']/*[local-name()='result']/children/instance/*[local-name()='instancetype']/@classname)"/> <FIELD indexable="true" stat="false" tokenizable="false" name="relfundinglevel2_name" result="false" xpath="//*[local-name()='entity']//rel/funding/funding_level_2/@name/string()"/><!-- <FIELD indexable="true" result="false" tokenizable="false" xpath="distinct-values(//*[local-name()='entity']//rel/@inferred)" name="relinferred" stat="false"/> --><!-- <FIELD xpath="distinct-values(//*[local-name()='entity']//rel/@trust)" stat="false" tokenizable="false" result="false" indexable="false" name="reltrust"/> --><!-- <FIELD xpath="distinct-values(//*[local-name()='entity']//rel/@inferenceprovenance)" tokenizable="false" stat="false" indexable="true" result="false" name="relinferenceprovenance"/> --><!-- <FIELD indexable="false" result="false" xpath="distinct-values(//*[local-name()='entity']//rel/@provenanceaction)" name="relprovenanceactionclassid" stat="false" tokenizable="false"/>--><!-- PROJECTS' FUNDER FIELDS: indexable only with the new funding path/context handling -->
<FIELD indexable="true" name="resultdupid" result="false" stat="false" tokenizable="false" xpath="//*[local-name()='entity']/*//children/result/@objidentifier"/> <FIELD value="distinct-values(concat(@id, '||', @name, '||', @shortname))" name="relfunder" indexable="true" tokenizable="false" result="false" xpath="//*[local-name()='entity']//rel/funding/funder" stat="false"/>
<FIELD indexable="true" name="organizationdupid" result="false" stat="false" tokenizable="false" xpath="//*[local-name()='entity']/*//children/organization/@objidentifier"/> <FIELD stat="false" indexable="true" xpath="distinct-values(//*[local-name()='entity']//rel/funding/funder/@id)" tokenizable="false" name="relfunderid" result="false"/>
<FIELD indexable="true" name="externalrefsite" result="false" stat="false" tokenizable="false" xpath="distinct-values(//*[local-name()='entity']/*//children/externalreference/sitename)"/> <FIELD name="relfundershortname" stat="false" tokenizable="false" indexable="true" xpath="distinct-values(//*[local-name()='entity']//rel/funding/funder/@shortname)" result="false"/><!-- <FIELD name="relfundername" stat="false" result="false" xpath="distinct-values(//*[local-name()='entity']//rel/funding/funder/@name)" tokenizable="false" indexable="true"/> --><!-- <FIELD indexable="true" name="relfunderjurisdiction" result="false" stat="false" xpath="distinct-values(//*[local-name()='entity']//rel/funding/funder/@jurisdiction)" tokenizable="false"/> !Collected from of the related entity. Available for result-result relationships --><!-- <FIELD tokenizable="false" stat="false" xpath="distinct-values(//*[local-name()='entity']/*//rel/collectedfrom/@id)" indexable="true" result="false" name="relcollectedfromid"/> --><!-- <FIELD stat="false" tokenizable="false" result="false" name="relcollectedfromname" indexable="true" xpath="distinct-values(//*[local-name()='entity']/*//rel/collectedfrom/@name)"/> --><!-- <FIELD result="false" stat="false" name="relvalidated" indexable="false" tokenizable="false" xpath="distinct-values(//*[local-name()='entity']/*//rel[./validated]/to[@type='project'])"/> -->
<FIELD indexable="true" name="externalreflabel" result="false" stat="false" tokenizable="true" xpath="distinct-values(//*[local-name()='entity']/*//children/externalreference/label)"/> <FIELD name="semrelid" stat="false" result="false" indexable="true" value="concat(./to/text(), '||', ./to/@class/string())" xpath="//*[local-name()='entity']//rel" tokenizable="false"/><!-- COMMON FIELDS -->
<FIELD indexable="true" name="externalrefclass" result="false" stat="false" tokenizable="false" xpath="distinct-values(//*[local-name()='entity']/*//children/externalreference/qualifier/@classid)"/> <FIELD result="false" value="//header/*[local-name()='dateOfCollection']" name="dateofcollection" type="date" stat="false" indexable="true" multivalued="false"/>
<FIELD indexable="true" name="externalrefid" result="false" stat="false" tokenizable="false" xpath="(//*[local-name()='entity']/*//children/externalreference/refidentifier)"/> <FIELD tokenizable="false" type="string_ci" result="false" name="status" stat="false" indexable="true" xpath="//header/*[local-name()='status']"/><!-- <FIELD result="false" value="distinct-values(concat(./@id, '||', ./@name))" stat="false" tokenizable="false" xpath="//*[local-name()='entity']/*/*[local-name()='collectedfrom'] | //*[local-name()='entity']/*//*[local-name() = 'instance']/*[local-name()='collectedfrom']" name="collectedfrom" indexable="true"/> -->
<FIELD indexable="true" name="resultidentifier" result="false" stat="false" xpath="distinct-values(//*[local-name()='entity']/*[local-name()='result']/children/instance/webresource/*[local-name()='url'])"/> <FIELD stat="false" indexable="true" name="collectedfromdatasourceid" result="false" tokenizable="false" xpath="distinct-values(//*[local-name()='entity']/*/*[local-name()='collectedfrom']/@id | //*[local-name()='entity']/*//*[local-name() = 'instance']/*[local-name()='collectedfrom']/@id)"/>
<FIELD indexable="true" name="resultsource" result="false" stat="false" xpath="distinct-values(//*[local-name()='entity']/*[local-name()='result']/source)"/><!-- REL FIELDS --> <FIELD xpath="distinct-values(//*[local-name()='entity']/*/*[local-name()='collectedfrom']/@name | //*[local-name()='entity']/*//*[local-name() = 'instance']/*[local-name()='collectedfrom']/@name)" indexable="true" name="collectedfromname" stat="false" result="false" tokenizable="false"/>
<FIELD indexable="true" name="reldatasourcecompatibilityid" result="false" stat="false" tokenizable="false" xpath="distinct-values(//*[local-name()='entity']/*//rel[./to/@type='datasource']/openairecompatibility/@classid)"/> <FIELD stat="false" result="false" indexable="true" tokenizable="false" type="string_ci" xpath="//*[local-name()='entity']/*/*[local-name()='originalId']" name="originalid"/>
<FIELD indexable="true" name="relproject" result="false" stat="false" tokenizable="false" value="distinct-values(concat(./text(), '||', dnet:pickFirst(../acronym/text(), ../title/text())))" xpath="//*[local-name()='entity']/*//rel/to[@type='project']"/> <FIELD name="pid" type="string_ci" stat="false" tokenizable="false" indexable="true" xpath="//*[local-name()='entity']/*/pid/text()" result="false"/>
<FIELD indexable="true" name="relprojectid" result="false" stat="false" tokenizable="false" xpath="distinct-values(//*[local-name()='entity']/*//rel/to[@type='project'])"/> <FIELD xpath="distinct-values(//*[local-name()='entity']/*/pid/@classid)" tokenizable="false" stat="false" indexable="true" name="pidclassid" result="false"/><!-- <FIELD name="pidclassname" stat="false" indexable="true" xpath="distinct-values(//*[local-name()='entity']/*/pid/@classname)" result="false" tokenizable="false"/> --><!-- <FIELD indexable="true" stat="false" result="false" name="inferred" xpath="//*[local-name()='entity']//datainfo/inferred" tokenizable="false"/> -->
<FIELD indexable="true" name="relprojectcode" result="false" stat="false" tokenizable="false" xpath="distinct-values(//*[local-name()='entity']/*//rel[./to/@type='project']/code)"/> <FIELD stat="false" name="deletedbyinference" indexable="true" xpath="//*[local-name()='entity']//datainfo/deletedbyinference" tokenizable="false" result="false"/><!-- <FIELD result="false" tokenizable="false" xpath="//*[local-name()='entity']//datainfo/trust" indexable="true" stat="false" name="trust"/> --><!-- <FIELD stat="false" name="inferenceprovenance" result="false" xpath="//*[local-name()='entity']//datainfo/inferenceprovenance" indexable="true" tokenizable="false"/> -->
<FIELD indexable="true" name="relprojectname" result="false" stat="false" tokenizable="false" xpath="distinct-values(//*[local-name()='entity']/*//rel[./to/@type='project']/acronym)"/> <FIELD indexable="true" name="provenanceactionclassid" tokenizable="false" stat="false" xpath="//*[local-name()='entity']//datainfo/provenanceaction/@classid" result="false"/>
<FIELD indexable="true" name="relprojecttitle" result="false" stat="false" xpath="distinct-values(//*[local-name()='entity']/*//rel[./to/@type='project']/title)"/> <FIELD result="false" indexable="true" stat="false" xpath="distinct-values(//*[local-name()='entity']/*[local-name()='result']/context/@id)" name="contextid" tokenizable="false"/><!-- <FIELD name="contexttype" stat="false" xpath="distinct-values(//*[local-name()='entity']/*[local-name()='result']/context/@type)" indexable="true" result="false" tokenizable="false"/> -->
<FIELD indexable="true" name="relcontracttypeid" result="false" stat="false" tokenizable="false" xpath="distinct-values(//*[local-name()='entity']/*//rel[./to/@type='project']/contracttype/@classid)"/> <FIELD result="false" stat="false" tokenizable="false" name="contextname" xpath="distinct-values(//*[local-name()='entity']/*[local-name()='result']/context/@label)" indexable="true"/><!-- Need special fields for community (research initiative) context in order to exclude funders from the context browse -->
<FIELD indexable="true" name="relcontracttypename" result="false" stat="false" xpath="distinct-values(//*[local-name()='entity']/*//rel[./to/@type='project']/contracttype/@classname)"/> <FIELD stat="false" indexable="true" xpath="//*[local-name()='entity']/*[local-name()='result']/context[@type='community' or @type='ri']" value="distinct-values(concat(@id, '||', @label))" result="false" tokenizable="false" name="community"/><!-- <FIELD indexable="true" tokenizable="false" xpath="distinct-values(//*[local-name()='entity']/*[local-name()='result']/context[@type='community' or @type='ri']/@label)" name="communityname" stat="false" result="false"/> -->
<FIELD indexable="true" name="relorganizationcountryid" result="false" stat="false" tokenizable="false" xpath="distinct-values(//*[local-name()='entity']/*//rel[./to/@type='organization']/country/@classid)"/> <FIELD stat="false" tokenizable="false" indexable="true" result="false" name="communityid" xpath="distinct-values(//*[local-name()='entity']/*[local-name()='result']/context[@type='community' or @type='ri']/@id)"/>
<FIELD indexable="true" name="relorganizationcountryname" result="false" stat="false" xpath="distinct-values(//*[local-name()='entity']/*//rel[./to/@type='organization']/country/@classname)"/> <FIELD name="categoryid" result="false" stat="false" indexable="true" xpath="distinct-values(//*[local-name()='entity']/*[local-name()='result']/context/category/@id)" tokenizable="false"/><!-- <FIELD indexable="true" tokenizable="false" name="categoryname" result="false" xpath="distinct-values(//*[local-name()='entity']/*[local-name()='result']/context/category/@label)" stat="false"/> --><!-- <FIELD tokenizable="false" result="false" xpath="distinct-values(//*[local-name()='entity']/*[local-name()='result']/context/category//concept/@id)" indexable="true" name="conceptid" stat="false"/> -->
<FIELD indexable="true" name="relorganizationid" result="false" stat="false" tokenizable="false" xpath="distinct-values(//*[local-name()='entity']/*//rel/to[@type='organization'])"/> <FIELD stat="false" name="conceptname" indexable="true" xpath="distinct-values(//*[local-name()='entity']/*[local-name()='result']/context/category//concept/@label)" tokenizable="false" result="false"/><!-- new index field for country info from different xpaths for any type of entity -->
<FIELD indexable="true" name="relorganizationname" result="false" stat="false" xpath="distinct-values(//*[local-name()='entity']/*//rel[./to/@type='organization']/legalname)"/> <FIELD name="country" stat="false" tokenizable="false" indexable="true" result="false" xpath="distinct-values(//*[local-name()='entity']/*/country/@classid | //*[local-name()='entity']/*//rel[./to/@type='organization']/country/@classid | //*[local-name()='entity']//funder/@jurisdiction)"/>
<FIELD indexable="true" name="relorganizationshortname" result="false" stat="false" xpath="distinct-values(//*[local-name()='entity']/*//rel[./to/@type='organization']/legalshortname)"/> <FIELD indexable="false" result="true" name="oafentity" xpath="//*[local-name() = 'entity']" tokenizable="false" stat="false"/>
<FIELD indexable="true" name="relresultid" result="false" stat="false" tokenizable="false" xpath="distinct-values(//*[local-name()='entity']/*//rel/to[@type='result'])"/>
<FIELD indexable="true" name="relresulttype" result="false" stat="false" tokenizable="false" xpath="distinct-values(//*[local-name()='entity']/*//rel/resulttype/@classid)"/>
<FIELD indexable="true" name="relclass" result="false" stat="false" tokenizable="false" xpath="distinct-values(//*[local-name()='entity']/*//rel/to/@class)"/>
<FIELD indexable="true" name="relfundinglevel0_id" result="false" stat="false" tokenizable="false" xpath="//*[local-name()='entity']//rel/funding/funding_level_0"/>
<FIELD indexable="true" name="relfundinglevel0_name" result="false" stat="false" tokenizable="false" xpath="//*[local-name()='entity']//rel/funding/funding_level_0/@name/string()"/>
<FIELD indexable="true" name="relfundinglevel1_id" result="false" stat="false" tokenizable="false" xpath="//*[local-name()='entity']//rel/funding/funding_level_1"/>
<FIELD indexable="true" name="relfundinglevel1_name" result="false" stat="false" tokenizable="false" xpath="//*[local-name()='entity']//rel/funding/funding_level_1/@name/string()"/>
<FIELD indexable="true" name="relfundinglevel2_id" result="false" stat="false" tokenizable="false" xpath="//*[local-name()='entity']//rel/funding/funding_level_2"/>
<FIELD indexable="true" name="relfundinglevel2_name" result="false" stat="false" tokenizable="false" xpath="//*[local-name()='entity']//rel/funding/funding_level_2/@name/string()"/>
<FIELD indexable="true" name="relinferred" result="false" stat="false" tokenizable="false" xpath="distinct-values(//*[local-name()='entity']//rel/@inferred)"/>
<FIELD indexable="true" name="reltrust" result="false" stat="false" tokenizable="false" xpath="distinct-values(//*[local-name()='entity']//rel/@trust)"/>
<FIELD indexable="true" name="relinferenceprovenance" result="false" stat="false" tokenizable="false" xpath="distinct-values(//*[local-name()='entity']//rel/@inferenceprovenance)"/>
<FIELD indexable="true" name="relprovenanceactionclassid" result="false" stat="false" tokenizable="false" xpath="distinct-values(//*[local-name()='entity']//rel/@provenanceaction)"/><!-- PROJECTS' FUNDER FIELDS: indexable only with the new funding path/context handling -->
<FIELD indexable="true" name="relfunder" result="false" stat="false" tokenizable="false" value="distinct-values(concat(@id, '||', @name, '||', @shortname))" xpath="//*[local-name()='entity']//rel/funding/funder"/>
<FIELD indexable="true" name="relfunderid" result="false" stat="false" tokenizable="false" xpath="distinct-values(//*[local-name()='entity']//rel/funding/funder/@id)"/>
<FIELD indexable="true" name="relfundershortname" result="false" stat="false" tokenizable="false" xpath="distinct-values(//*[local-name()='entity']//rel/funding/funder/@shortname)"/>
<FIELD indexable="true" name="relfundername" result="false" stat="false" tokenizable="false" xpath="distinct-values(//*[local-name()='entity']//rel/funding/funder/@name)"/>
<FIELD indexable="true" name="relfunderjurisdiction" result="false" stat="false" tokenizable="false" xpath="distinct-values(//*[local-name()='entity']//rel/funding/funder/@jurisdiction)"/><!-- Collected from of the related entity. Available for result-result relationships -->
<FIELD indexable="true" name="relcollectedfromid" result="false" stat="false" tokenizable="false" xpath="distinct-values(//*[local-name()='entity']/*//rel/collectedfrom/@id)"/>
<FIELD indexable="true" name="relcollectedfromname" result="false" stat="false" tokenizable="false" xpath="distinct-values(//*[local-name()='entity']/*//rel/collectedfrom/@name)"/>
<FIELD indexable="true" name="semrelid" result="false" stat="false" tokenizable="false" value="concat(./to/text(), '||', ./to/@class/string())" xpath="//*[local-name()='entity']//rel"/><!-- COMMON FIELDS -->
<FIELD indexable="true" multivalued="false" name="dateofcollection" result="false" stat="false" type="pdate" value="//header/*[local-name()='dateOfCollection']"/>
<FIELD indexable="true" name="collectedfrom" result="false" stat="false" tokenizable="false" value="distinct-values(concat(./@id, '||', ./@name))" xpath="//*[local-name()='entity']/*/*[local-name()='collectedfrom'] | //*[local-name()='entity']/*//*[local-name() = 'instance']/*[local-name()='collectedfrom']"/>
<FIELD indexable="true" name="collectedfromdatasourceid" result="false" stat="false" tokenizable="false" xpath="distinct-values(//*[local-name()='entity']/*/*[local-name()='collectedfrom']/@id | //*[local-name()='entity']/*//*[local-name() = 'instance']/*[local-name()='collectedfrom']/@id)"/>
<FIELD indexable="true" name="collectedfromname" result="false" stat="false" tokenizable="false" xpath="distinct-values(//*[local-name()='entity']/*/*[local-name()='collectedfrom']/@name | //*[local-name()='entity']/*//*[local-name() = 'instance']/*[local-name()='collectedfrom']/@name)"/>
<FIELD indexable="true" name="originalid" result="false" stat="false" tokenizable="false" type="string_ci" xpath="//*[local-name()='entity']/*/*[local-name()='originalId']"/>
<FIELD indexable="true" name="pid" result="false" stat="false" tokenizable="false" type="string_ci" xpath="distinct-values(//*[local-name()='entity']/*/pid/text()|//*[local-name()='instance']/*[local-name()='alternateidentifier']/text())"/>
<FIELD indexable="true" name="pidclassid" result="false" stat="false" tokenizable="false" xpath="distinct-values(//*[local-name()='entity']/*/pid/@classid)"/>
<FIELD indexable="true" name="pidclassname" result="false" stat="false" tokenizable="false" xpath="distinct-values(//*[local-name()='entity']/*/pid/@classname)"/>
<FIELD indexable="true" name="inferred" result="false" stat="false" tokenizable="false" xpath="//*[local-name()='entity']//datainfo/inferred"/>
<FIELD indexable="true" name="deletedbyinference" result="false" stat="false" tokenizable="false" xpath="//*[local-name()='entity']//datainfo/deletedbyinference"/>
<FIELD indexable="true" name="trust" result="false" stat="false" tokenizable="false" xpath="//*[local-name()='entity']//datainfo/trust"/>
<FIELD indexable="true" name="inferenceprovenance" result="false" stat="false" tokenizable="false" xpath="//*[local-name()='entity']//datainfo/inferenceprovenance"/>
<FIELD indexable="true" name="provenanceactionclassid" result="false" stat="false" tokenizable="false" xpath="//*[local-name()='entity']//datainfo/provenanceaction/@classid"/>
<FIELD indexable="true" name="contextid" result="false" stat="false" tokenizable="false" xpath="distinct-values(//*[local-name()='entity']/*[local-name()='result']/context/@id)"/>
<FIELD indexable="true" name="contexttype" result="false" stat="false" tokenizable="false" xpath="distinct-values(//*[local-name()='entity']/*[local-name()='result']/context/@type)"/>
<FIELD indexable="true" name="contextname" result="false" stat="false" tokenizable="false" xpath="distinct-values(//*[local-name()='entity']/*[local-name()='result']/context/@label)"/><!-- Need special fields for community (research initiative) context in order to exclude funders from the context browse -->
<FIELD indexable="true" name="community" result="false" stat="false" tokenizable="false" value="distinct-values(concat(@id, '||', @label))" xpath="//*[local-name()='entity']/*[local-name()='result']/context[@type='community' or @type='ri']"/>
<FIELD indexable="true" name="communityname" result="false" stat="false" tokenizable="false" xpath="distinct-values(//*[local-name()='entity']/*[local-name()='result']/context[@type='community' or @type='ri']/@label)"/>
<FIELD indexable="true" name="communityid" result="false" stat="false" tokenizable="false" xpath="distinct-values(//*[local-name()='entity']/*[local-name()='result']/context[@type='community' or @type='ri']/@id)"/>
<FIELD indexable="true" name="categoryid" result="false" stat="false" tokenizable="false" xpath="distinct-values(//*[local-name()='entity']/*[local-name()='result']/context/category/@id)"/>
<FIELD indexable="true" name="categoryname" result="false" stat="false" tokenizable="false" xpath="distinct-values(//*[local-name()='entity']/*[local-name()='result']/context/category/@label)"/>
<FIELD indexable="true" name="conceptid" result="false" stat="false" tokenizable="false" xpath="distinct-values(//*[local-name()='entity']/*[local-name()='result']/context/category//concept/@id)"/>
<FIELD indexable="true" name="conceptname" result="false" stat="false" tokenizable="false" xpath="distinct-values(//*[local-name()='entity']/*[local-name()='result']/context/category//concept/@label)"/><!-- new index field for country info from different xpaths for any type of entity -->
<FIELD indexable="true" name="country" result="false" stat="false" tokenizable="false" xpath="distinct-values(//*[local-name()='entity']/*/country/@classid | //*[local-name()='entity']/*//rel[./to/@type='organization']/country/@classid | //*[local-name()='entity']//funder/@jurisdiction)"/><!-- COUNTER FIELDS -->
<FIELD header="true" indexable="true" multivalued="false" name="counter_dedup" result="false" stored="true" type="pint" xpath="/record/result/*[local-name()='header']/*[local-name()='counters']/counter_dedup/@value"/>
<FIELD header="true" indexable="true" multivalued="false" name="counter_authorship" result="false" stored="true" type="pint" xpath="/record/result/*[local-name()='header']/*[local-name()='counters']/counter_authorship/@value"/>
<FIELD header="true" indexable="true" multivalued="false" name="counter_participation" result="false" stored="true" type="pint" xpath="/record/result/*[local-name()='header']/*[local-name()='counters']/counter_participation/@value"/>
<FIELD header="true" indexable="true" multivalued="false" name="counter_similarity" result="false" stored="true" type="pint" xpath="/record/result/*[local-name()='header']/*[local-name()='counters']/counter_similarity/@value"/>
<FIELD header="true" indexable="true" multivalued="false" name="counter_publicationdataset" result="false" stored="true" type="pint" xpath="/record/result/*[local-name()='header']/*[local-name()='counters']/counter_publicationDataset/@value"/>
<FIELD header="true" indexable="true" multivalued="false" name="counter_publicationdataset_claimed" result="false" stored="true" type="pint" xpath="/record/result/*[local-name()='header']/*[local-name()='counters']/counter_publicationDataset_claimed/@value"/>
<FIELD header="true" indexable="true" multivalued="false" name="counter_publicationdataset_collected" result="false" stored="true" type="pint" xpath="/record/result/*[local-name()='header']/*[local-name()='counters']/counter_publicationDataset_collected/@value"/>
<FIELD header="true" indexable="true" multivalued="false" name="counter_publicationdataset_inferred" result="false" stored="true" type="pint" xpath="/record/result/*[local-name()='header']/*[local-name()='counters']/counter_publicationDataset_inferred/@value"/>
<FIELD header="true" indexable="true" multivalued="false" name="counter_outcome" result="false" stored="true" type="pint" xpath="/record/result/*[local-name()='header']/*[local-name()='counters']/counter_outcome/@value"/>
<FIELD header="true" indexable="true" multivalued="false" name="counter_outcome_claimed" result="false" stored="true" type="pint" xpath="/record/result/*[local-name()='header']/*[local-name()='counters']/counter_outcome_claimed/@value"/>
<FIELD header="true" indexable="true" multivalued="false" name="counter_outcome_collected" result="false" stored="true" type="pint" xpath="/record/result/*[local-name()='header']/*[local-name()='counters']/counter_outcome_collected/@value"/>
<FIELD header="true" indexable="true" multivalued="false" name="counter_outcome_inferred" result="false" stored="true" type="pint" xpath="/record/result/*[local-name()='header']/*[local-name()='counters']/counter_outcome_inferred/@value"/>
<FIELD header="true" indexable="true" multivalued="false" name="counter_affiliation" result="false" stored="true" type="pint" xpath="/record/result/*[local-name()='header']/*[local-name()='counters']/counter_affiliation/@value"/>
<FIELD header="true" indexable="true" multivalued="false" name="counter_doi" result="false" stored="true" type="pint" xpath="/record/result/*[local-name()='header']/*[local-name()='counters']/counter_doi/@value"/>
</FIELDS> </FIELDS>
</LAYOUT> </LAYOUT>