<beans xmlns="http://www.springframework.org/schema/beans" xmlns:p="http://www.springframework.org/schema/p" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd"> <bean id="eml.abstract" class="org.dataone.cn.indexer.parser.MergeSolrField"> <constructor-arg name="name" value="abstract" /> <constructor-arg name="xpath" value="//dataset/abstract/descendant::text()" /> <constructor-arg name="delimiter" value=" " /> <property name="multivalue" value="false" /> <property name="dedupe" value="false" /> </bean> <bean id="eml.keywords" class="org.dataone.cn.indexer.parser.SolrField"> <constructor-arg name="name" value="keywords" /> <constructor-arg name="xpath" value="//dataset/keywordSet/keyword/text()" /> <property name="multivalue" value="true" /> <property name="dedupe" value="true" /> </bean> <bean id="eml.southBoundCoord" class="org.dataone.cn.indexer.parser.SolrField"> <constructor-arg name="name" value="southBoundCoord" /> <constructor-arg name="xpath" value="//dataset/coverage/geographicCoverage/boundingCoordinates/southBoundingCoordinate/text()" /> <property name="multivalue" value="false" /> <property name="converter" ref="solrLatitudeConverter" /> </bean> <bean id="eml.northBoundCoord" class="org.dataone.cn.indexer.parser.SolrField"> <constructor-arg name="name" value="northBoundCoord" /> <constructor-arg name="xpath" value="//dataset/coverage/geographicCoverage/boundingCoordinates/northBoundingCoordinate/text()" /> <property name="multivalue" value="false" /> <property name="converter" ref="solrLatitudeConverter" /> </bean> <bean id="eml.westBoundCoord" class="org.dataone.cn.indexer.parser.SolrField"> <constructor-arg name="name" value="westBoundCoord" /> <constructor-arg name="xpath" value="//dataset/coverage/geographicCoverage/boundingCoordinates/westBoundingCoordinate/text()" /> <property name="multivalue" value="false" /> <property name="converter" ref="solrLongitudeConverter" /> </bean> <bean id="eml.eastBoundCoord" class="org.dataone.cn.indexer.parser.SolrField"> <constructor-arg name="name" value="eastBoundCoord" /> <constructor-arg name="xpath" value="//dataset/coverage/geographicCoverage/boundingCoordinates/eastBoundingCoordinate/text()" /> <property name="multivalue" value="false" /> <property name="converter" ref="solrLongitudeConverter" /> </bean> <!-- define the root and leafs for accessing multiple bounding coordinates for geohash --> <bean id="eml.geohashRoot" class="org.dataone.cn.indexer.parser.utility.RootElement" p:name="geohashRoot" p:xPath="//dataset/coverage/geographicCoverage/boundingCoordinates" p:template="[northBoundingCoordinate] [southBoundingCoordinate] [eastBoundingCoordinate] [westBoundingCoordinate]"> <property name="leafs"> <list> <ref bean="eml.northBoundingCoordinateLeaf"/> <ref bean="eml.southBoundingCoordinateLeaf"/> <ref bean="eml.eastBoundingCoordinateLeaf"/> <ref bean="eml.westBoundingCoordinateLeaf"/> </list> </property> </bean> <bean id="eml.northBoundingCoordinateLeaf" class="org.dataone.cn.indexer.parser.utility.LeafElement" p:name="northBoundingCoordinate" p:xPath="northBoundingCoordinate/text()" /> <bean id="eml.westBoundingCoordinateLeaf" class="org.dataone.cn.indexer.parser.utility.LeafElement" p:name="westBoundingCoordinate" p:xPath="westBoundingCoordinate/text()" /> <bean id="eml.southBoundingCoordinateLeaf" class="org.dataone.cn.indexer.parser.utility.LeafElement" p:name="southBoundingCoordinate" p:xPath="southBoundingCoordinate/text()" /> <bean id="eml.eastBoundingCoordinateLeaf" class="org.dataone.cn.indexer.parser.utility.LeafElement" p:name="eastBoundingCoordinate" p:xPath="eastBoundingCoordinate/text()" /> <!-- use the root to calculate different geohash lengths --> <bean id="eml.geohash1" class="org.dataone.cn.indexer.parser.CommonRootSolrField" p:multivalue="true" p:root-ref="eml.geohashRoot"> <constructor-arg name="name" value="geohash_1" /> <property name="converter" ref="geohashConverter_1"/> </bean> <bean id="eml.geohash2" class="org.dataone.cn.indexer.parser.CommonRootSolrField" p:multivalue="true" p:root-ref="eml.geohashRoot"> <constructor-arg name="name" value="geohash_2" /> <property name="converter" ref="geohashConverter_2"/> </bean> <bean id="eml.geohash3" class="org.dataone.cn.indexer.parser.CommonRootSolrField" p:multivalue="true" p:root-ref="eml.geohashRoot"> <constructor-arg name="name" value="geohash_3" /> <property name="converter" ref="geohashConverter_3"/> </bean> <bean id="eml.geohash4" class="org.dataone.cn.indexer.parser.CommonRootSolrField" p:multivalue="true" p:root-ref="eml.geohashRoot"> <constructor-arg name="name" value="geohash_4" /> <property name="converter" ref="geohashConverter_4"/> </bean> <bean id="eml.geohash5" class="org.dataone.cn.indexer.parser.CommonRootSolrField" p:multivalue="true" p:root-ref="eml.geohashRoot"> <constructor-arg name="name" value="geohash_5" /> <property name="converter" ref="geohashConverter_5"/> </bean> <bean id="eml.geohash6" class="org.dataone.cn.indexer.parser.CommonRootSolrField" p:multivalue="true" p:root-ref="eml.geohashRoot"> <constructor-arg name="name" value="geohash_6" /> <property name="converter" ref="geohashConverter_6"/> </bean> <bean id="eml.geohash7" class="org.dataone.cn.indexer.parser.CommonRootSolrField" p:multivalue="true" p:root-ref="eml.geohashRoot"> <constructor-arg name="name" value="geohash_7" /> <property name="converter" ref="geohashConverter_7"/> </bean> <bean id="eml.geohash8" class="org.dataone.cn.indexer.parser.CommonRootSolrField" p:multivalue="true" p:root-ref="eml.geohashRoot"> <constructor-arg name="name" value="geohash_8" /> <property name="converter" ref="geohashConverter_8"/> </bean> <bean id="eml.geohash9" class="org.dataone.cn.indexer.parser.CommonRootSolrField" p:multivalue="true" p:root-ref="eml.geohashRoot"> <constructor-arg name="name" value="geohash_9" /> <property name="converter" ref="geohashConverter_9"/> </bean> <bean id="eml.site" class="org.dataone.cn.indexer.parser.SolrField"> <constructor-arg name="name" value="site" /> <constructor-arg name="xpath" value='//dataset/coverage/geographicCoverage/geographicDescription/text()' /> <property name="multivalue" value="true" /> </bean> <bean id="eml.beginDate" class="org.dataone.cn.indexer.parser.SolrField"> <constructor-arg name="name" value="beginDate" /> <constructor-arg name="xpath" value="//dataset/coverage/temporalCoverage/rangeOfDates/beginDate/calendarDate/text() | //dataset/coverage/temporalCoverage/singleDateTime/calendarDate/text()" /> <property name="multivalue" value="false" /> <property name="converter" ref="dateConverter" /> </bean> <bean id="eml.endDate" class="org.dataone.cn.indexer.parser.SolrField"> <constructor-arg name="name" value="endDate" /> <constructor-arg name="xpath" value="//dataset/coverage/temporalCoverage/rangeOfDates/endDate/calendarDate/text() | //dataset/coverage/temporalCoverage/singleDateTime/calendarDate/text()" /> <property name="multivalue" value="false" /> <property name="converter" ref="dateConverter" /> </bean> <bean id="eml.pubDate" class="org.dataone.cn.indexer.parser.SolrField"> <constructor-arg name="name" value="pubDate" /> <constructor-arg name="xpath" value="//dataset/pubDate/text()" /> <property name="multivalue" value="false" /> <property name="converter" ref="dateConverter" /> </bean> <bean id="eml.title" class="org.dataone.cn.indexer.parser.SolrField"> <constructor-arg name="name" value="title" /> <constructor-arg name="xpath" value="//dataset/title/text()" /> <property name="multivalue" value="false" /> </bean> <bean id="eml.project" class="org.dataone.cn.indexer.parser.SolrField"> <constructor-arg name="name" value="project" /> <constructor-arg name="xpath" value="//dataset/project/title/text()" /> <property name="multivalue" value="false" /> </bean> <bean id="eml.authorSurName" class="org.dataone.cn.indexer.parser.SolrField"> <constructor-arg name="name" value="authorSurName" /> <constructor-arg name="xpath" value="//dataset/creator[1]/individualName[1]/surName/text()" /> </bean> <bean id="eml.authorGivenName" class="org.dataone.cn.indexer.parser.SolrField"> <constructor-arg name="name" value="authorGivenName" /> <constructor-arg name="xpath" value="//dataset/creator[1]/individualName[1]/givenName/text()" /> </bean> <bean id="eml.authorSurNameSort" class="org.dataone.cn.indexer.parser.SolrField"> <constructor-arg name="name" value="authorSurNameSort" /> <constructor-arg name="xpath" value="//dataset/creator[1]/individualName[1]/surName/text()" /> </bean> <bean id="eml.authorGivenNameSort" class="org.dataone.cn.indexer.parser.SolrField"> <constructor-arg name="name" value="authorGivenNameSort" /> <constructor-arg name="xpath" value="//dataset/creator[1]/individualName[1]/givenName/text()" /> </bean> <bean id="eml.author" class="org.dataone.cn.indexer.parser.CommonRootSolrField" p:multivalue="false" p:root-ref="eml.authorNameRoot"> <constructor-arg name="name" value="author" /> </bean> <bean id="eml.authorNameRoot" class="org.dataone.cn.indexer.parser.utility.RootElement" p:name="author" p:xPath="//dataset/creator/individualName" p:template="[givenName] [surName]"> <property name="leafs"> <list> <ref bean="eml.givenNameLeaf"/> <ref bean="eml.surNameLeaf"/> </list> </property> </bean> <bean id="eml.givenNameLeaf" class="org.dataone.cn.indexer.parser.utility.LeafElement" p:name="givenName" p:xPath="givenName/text()" /> <bean id="eml.surNameLeaf" class="org.dataone.cn.indexer.parser.utility.LeafElement" p:name="surName" p:xPath="surName/text()"/> <bean id="eml.author_lname" class="org.dataone.cn.indexer.parser.SolrField"> <constructor-arg name="name" value="authorLastName" /> <constructor-arg name="xpath" value="//dataset/creator/individualName/surName/text()" /> <property name="multivalue" value="true" /> </bean> <bean id="eml.investigator" class="org.dataone.cn.indexer.parser.SolrField"> <constructor-arg name="name" value="investigator" /> <constructor-arg name="xpath" value="//dataset/creator/individualName/surName/text()" /> <property name="multivalue" value="true" /> </bean> <bean id="eml.origin" class="org.dataone.cn.indexer.parser.CommonRootSolrField" p:multivalue="true" p:root-ref="eml.originRoot"> <constructor-arg name="name" value="origin" /> </bean> <bean id="eml.originRoot" class="org.dataone.cn.indexer.parser.utility.RootElement" p:name="origin" p:xPath="//dataset/creator" p:template="[individualName]||[organizationName]"> <property name="leafs"><list><ref bean="eml.organizationNameLeaf"/></list></property> <property name="subRoots"><list><ref bean="eml.individualNameRoot" /></list></property> </bean> <bean id="eml.organizationNameLeaf" class="org.dataone.cn.indexer.parser.utility.LeafElement" p:name="organizationName" p:xPath="organizationName/text()" /> <bean id="eml.individualNameRoot" class="org.dataone.cn.indexer.parser.utility.RootElement" p:name="individualName" p:xPath="individualName" p:template="[givenName] [surName]"> <property name="leafs"> <list> <ref bean="eml.givenNameLeaf"/> <ref bean="eml.surNameLeaf"/> </list> </property> </bean> <bean id="eml.contactOrganization" class="org.dataone.cn.indexer.parser.SolrField"> <constructor-arg name="name" value="contactOrganization" /> <constructor-arg name="xpath" value="//dataset/creator/organizationName/text()" /> <property name="multivalue" value="true" /> <property name="dedupe" value="true"/> </bean> <!-- <bean id="eml.fileID" class="org.dataone.cn.indexer.parser.ResolveSolrField"> <constructor-arg name="name" value="fileID" /> </bean> --> <bean id="eml.text" class="org.dataone.cn.indexer.parser.FullTextSolrField"> <constructor-arg name="name" value="text" /> <constructor-arg name="xpath" value="//dataset/*[not(self::dataTable)]//text()" /> <property name="multivalue" value="false" /> <property name="combineNodes" value="true"/> </bean> <bean id="eml.genus" class="org.dataone.cn.indexer.parser.SolrField"> <constructor-arg name="name" value="genus" /> <constructor-arg name="xpath" value='//taxonomicClassification/taxonRankValue[../taxonRankName="Genus" or ../taxonRankName="genus"]/text()' /> <property name="multivalue" value="true" /> <property name="dedupe" value="true" /> </bean> <bean id="eml.species" class="org.dataone.cn.indexer.parser.SolrField"> <constructor-arg name="name" value="species" /> <constructor-arg name="xpath" value='//taxonomicClassification/taxonRankValue[../taxonRankName="Species" or ../taxonRankName="species"]/text()' /> <property name="multivalue" value="true" /> <property name="dedupe" value="true" /> </bean> <bean id="eml.kingdom" class="org.dataone.cn.indexer.parser.SolrField"> <constructor-arg name="name" value="kingdom" /> <constructor-arg name="xpath" value='//taxonomicClassification/taxonRankValue[../taxonRankName="Kingdom" or ../taxonRankName="kingdom"]/text()' /> <property name="multivalue" value="true" /> <property name="dedupe" value="true" /> </bean> <bean id="eml.order" class="org.dataone.cn.indexer.parser.SolrField"> <constructor-arg name="name" value="order" /> <constructor-arg name="xpath" value='//taxonomicClassification/taxonRankValue[../taxonRankName="Order" or ../taxonRankName="order"]/text()' /> <property name="multivalue" value="true" /> <property name="dedupe" value="true" /> </bean> <bean id="eml.phylum" class="org.dataone.cn.indexer.parser.SolrField"> <constructor-arg name="name" value="phylum" /> <constructor-arg name="xpath" value='//taxonomicClassification/taxonRankValue[../taxonRankName="Phylum" or ../taxonRankName="phylum"]/text() | //taxonomicClassification/taxonRankValue[../taxonRankName="Division" or ../taxonRankName="division"]/text()' /> <property name="multivalue" value="true" /> <property name="dedupe" value="true" /> </bean> <bean id="eml.family" class="org.dataone.cn.indexer.parser.SolrField"> <constructor-arg name="name" value="family" /> <constructor-arg name="xpath" value='//taxonomicClassification/taxonRankValue[../taxonRankName="Family" or ../taxonRankName="family"]/text()' /> <property name="multivalue" value="true" /> <property name="dedupe" value="true" /> </bean> <bean id="eml.class" class="org.dataone.cn.indexer.parser.SolrField"> <constructor-arg name="name" value="class" /> <constructor-arg name="xpath" value='//taxonomicClassification/taxonRankValue[../taxonRankName="Class" or ../taxonRankName="class"]/text()' /> <property name="multivalue" value="true" /> <property name="dedupe" value="true" /> </bean> <bean id="eml.scientificName" class="org.dataone.cn.indexer.parser.CommonRootSolrField" p:multivalue="true" p:root-ref="eml.scientificNameRoot"> <constructor-arg name="name" value="scientificName" /> </bean> <bean id="eml.scientificNameRoot" class="org.dataone.cn.indexer.parser.utility.RootElement" p:name="scientificName" p:xPath='//taxonomicClassification[../taxonRankName="Genus" or ../taxonRankName="genus"]' p:template="[genus] [species]"> <property name="leafs"> <list> <ref bean="eml.genusLeaf"/> <ref bean="eml.speciesLeaf"/> </list> </property> </bean> <bean id="eml.genusLeaf" class="org.dataone.cn.indexer.parser.utility.LeafElement" p:name="genus" p:xPath='../taxonRankValue/text()' /> <bean id="eml.speciesLeaf" class="org.dataone.cn.indexer.parser.utility.LeafElement" p:name="species" p:xPath='taxonRankValue/text()' /> <bean id="eml.attributeName" class="org.dataone.cn.indexer.parser.SolrField"> <constructor-arg name="name" value="attributeName" /> <constructor-arg name="xpath" value='//dataTable/attributeList/attribute/attributeName/text()' /> <property name="multivalue" value="true" /> <property name="dedupe" value="false" /> </bean> <bean id="eml.attributeLabel" class="org.dataone.cn.indexer.parser.SolrField"> <constructor-arg name="name" value="attributeLabel" /> <constructor-arg name="xpath" value='//dataTable/attributeList/attribute/attributeLabel/text()' /> <property name="multivalue" value="true" /> <property name="dedupe" value="false" /> </bean> <bean id="eml.attributeDescription" class="org.dataone.cn.indexer.parser.SolrField"> <constructor-arg name="name" value="attributeDescription" /> <constructor-arg name="xpath" value='//dataTable/attributeList/attribute/attributeDefinition/text()' /> <property name="multivalue" value="true" /> <property name="dedupe" value="false" /> </bean> <bean id="eml.attributeUnit" class="org.dataone.cn.indexer.parser.SolrField"> <constructor-arg name="name" value="attributeUnit" /> <constructor-arg name="xpath" value='//dataTable//standardUnit/text() | //dataTable//customUnit/text()' /> <property name="multivalue" value="true" /> <property name="dedupe" value="false" /> </bean> <bean id="eml.attributeText" class="org.dataone.cn.indexer.parser.CommonRootSolrField" p:multivalue="true" p:root-ref="eml.attributeTextRoot"> <constructor-arg name="name" value="attribute" /> </bean> <bean id="eml.attributeTextRoot" class="org.dataone.cn.indexer.parser.utility.RootElement" p:name="attribute" p:xPath='//dataTable/attributeList/attribute' p:template="[attributeName] [attributeLabel] [attributeDescription] [attributeUnit]"> <property name="leafs"> <list> <ref bean="eml.attributeNameLeaf" /> <ref bean="eml.attributeLabelLeaf" /> <ref bean="eml.attributeDescriptionLeaf" /> <ref bean="eml.attributeUnitLeaf" /> </list> </property> </bean> <bean id="eml.attributeNameLeaf" class="org.dataone.cn.indexer.parser.utility.LeafElement" p:name="attributeName" p:xPath='attributeName/text()' /> <bean id="eml.attributeLabelLeaf" class="org.dataone.cn.indexer.parser.utility.LeafElement" p:name="attributeLabel" p:xPath='attributeLabel/text()' /> <bean id="eml.attributeDescriptionLeaf" class="org.dataone.cn.indexer.parser.utility.LeafElement" p:name="attributeDescription" p:xPath='attributeDefinition/text()' /> <bean id="eml.attributeUnitLeaf" class="org.dataone.cn.indexer.parser.utility.LeafElement" p:name="attributeUnit" p:xPath='.//standardUnit/text() | .//customUnit/text()' /> <bean id="eml.attributeName.noDupe" class="org.dataone.cn.indexer.parser.SolrField"> <constructor-arg name="name" value="attributeName_noDupe" /> <constructor-arg name="xpath" value='//dataTable/attributeList/attribute/attributeName/text()' /> <property name="multivalue" value="true" /> <property name="dedupe" value="true" /> </bean> <bean id="eml.attributeLabel.noDupe" class="org.dataone.cn.indexer.parser.SolrField"> <constructor-arg name="name" value="attributeLabel_noDupe" /> <constructor-arg name="xpath" value='//dataTable/attributeList/attribute/attributeLabel/text()' /> <property name="multivalue" value="true" /> <property name="dedupe" value="true" /> </bean> <bean id="eml.attributeDescription.noDupe" class="org.dataone.cn.indexer.parser.SolrField"> <constructor-arg name="name" value="attributeDescription_noDupe" /> <constructor-arg name="xpath" value='//dataTable/attributeList/attribute/attributeDefinition/text()' /> <property name="multivalue" value="true" /> <property name="dedupe" value="true" /> </bean> <bean id="eml.attributeUnit.noDupe" class="org.dataone.cn.indexer.parser.SolrField"> <constructor-arg name="name" value="attributeUnit_noDupe" /> <constructor-arg name="xpath" value='//dataTable//standardUnit/text() | //dataTable//customUnit/text()' /> <property name="multivalue" value="true" /> <property name="dedupe" value="true" /> </bean> <bean id="eml.fullText" class="org.dataone.cn.indexer.parser.AggregateSolrField" > <property name="name" value="text" /> <property name="solrFields"> <list> <ref bean="eml.text" /> <ref bean="eml.attributeName.noDupe" /> <ref bean="eml.attributeLabel.noDupe" /> <ref bean="eml.attributeDescription.noDupe" /> <ref bean="eml.attributeUnit.noDupe" /> </list> </property> </bean> </beans>