Solr 实体嵌套

Posted 在奋斗的大道

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Solr 实体嵌套相关的知识,希望对你有一定的参考价值。

公司主要测业务是:城市档案馆建设,一份案卷包含一个或多个业务实现,现在需要solr 索引库能够已经相关业务事项的(证号、单位)来进行相关功能检索。

相关功能业务实现: 以案卷为主表嵌套其他业务事项表

在solr的***-data-config.xml中配置:

<dataConfig>
	<dataSource name="jdbc" driver="oracle.jdbc.driver.OracleDriver" url="jdbc:oracle:thin:@127.0.0.1:1521:orcl"  user="root" password="root23456"/>
	<document>
		<entity name="archInfo" pk="SID" query="
				   SELECT
            TB.SID as SID,
            TB.ENG_SID as ENG_SID,
            TB.ZONE_ORG_CODE as ZONE_ORG_CODE,
            TB.ARCH_ID as ARCH_ID,
            TB.ENG_ARCH_NO as ENG_ARCH_NO,
            TB.REG_NO as REG_NO,
            TB.ARCH_TITLE as ARCH_TITLE,
            TB.MAKE_ORG_NAME as MAKE_ORG_NAME,
            (SELECT S.DATA_1_VALUE FROM ERMS_SYS_DATA_DICT S WHERE S.KEY_1_VALUE = TB.MEDIA_TYPE_CODE AND S.CATEGORY_CODE='MEDIA_TYPE_CODE') AS MEDIA_TYPE_CODE,
            (SELECT S.DATA_1_VALUE FROM ERMS_SYS_DATA_DICT S WHERE S.KEY_1_VALUE = TB.ARCH_TYPE_CODE AND S.CATEGORY_CODE='ARCH_TYPE_CODE') AS ARCH_TYPE_CODE,
            TB.UNITS_CODE as UNITS_CODE,
            TB.SPEC_CODE as SPEC_CODE,
            TB.START_DATE as START_DATE,
            TB.END_DATE as END_DATE,
            (SELECT S1.DATA_1_VALUE FROM ERMS_SYS_DATA_DICT S1 WHERE S1.KEY_1_VALUE = TB.SECURITY_LEVEL_CODE AND S1.CATEGORY_CODE='SECURITY_LEVEL_CODE') as SECURITY_LEVEL_CODE,
            (SELECT S1.DATA_1_VALUE FROM ERMS_SYS_DATA_DICT S1 WHERE S1.KEY_1_VALUE = TB.STORAGE_TYPE_CODE AND S1.CATEGORY_CODE='STORAGE_TYPE_CODE') as STORAGE_TYPE_CODE,
            (SELECT ENG_TYPE FROM ERMS_BIZ_ENG_BASE_INFO ENG WHERE ENG.SID = TB.ENG_SID) AS ENG_TYPE,
            '案卷信息' AS ARCHIVE_TYPE_NAME,
            TB.PROJ_NAME AS PROJ_NAME,
                  TB.APPLY_UNIT AS APPLY_UNIT,
            TB.ARCH_BUS_TYPE as ARCH_BUS_TYPE,
            TB.ASSORT_NUM AS ASSORT_NUM,
                  (SELECT ASSORT_NAME FROM ERMS_BIZ_ASSORT_BUS A WHERE A.ASSORT_NUM = TB.ASSORT_NUM AND A.ORGANIZATION_CODE = TB.ORGANIZATION_CODE) AS ASSORT_NAME,
            TB.ORGANIZATION_CODE AS ORGANIZATION_CODE,
                  (SELECT ORGANIZATION_NAME FROM ERMS_BIZ_ORGANIZATION_INFO O WHERE O.ORGANIZATION_CODE = TB.ORGANIZATION_CODE) AS ORGANIZATION_NAME,
            TB.ARCH_CATEGORY_CODE AS ARCH_CATEGORY_CODE,
            TB.ARCHIVE_YEAR as ARCHIVE_YEAR,
			TB.NOTE as ARCH_NOTE
            FROM ARCH_INFO TB WHERE TB.ORGANIZATION_CODE is not null"
					 deltaImportQuery="
					 SELECT
            TB.SID as SID,
            TB.ENG_SID as ENG_SID,
            TB.ZONE_ORG_CODE as ZONE_ORG_CODE,
            TB.ARCH_ID as ARCH_ID,
            TB.ENG_ARCH_NO as ENG_ARCH_NO,
            TB.REG_NO as REG_NO,
            TB.ARCH_TITLE as ARCH_TITLE,
            TB.MAKE_ORG_NAME as MAKE_ORG_NAME,
            (SELECT S.DATA_1_VALUE FROM ERMS_SYS_DATA_DICT S WHERE S.KEY_1_VALUE = TB.MEDIA_TYPE_CODE AND S.CATEGORY_CODE='MEDIA_TYPE_CODE') AS MEDIA_TYPE_CODE,
            (SELECT S.DATA_1_VALUE FROM ERMS_SYS_DATA_DICT S WHERE S.KEY_1_VALUE = TB.ARCH_TYPE_CODE AND S.CATEGORY_CODE='ARCH_TYPE_CODE') AS ARCH_TYPE_CODE,
            TB.UNITS_CODE as UNITS_CODE,
            TB.SPEC_CODE as SPEC_CODE,
            TB.START_DATE as START_DATE,
            TB.END_DATE as END_DATE,
            (SELECT S1.DATA_1_VALUE FROM ERMS_SYS_DATA_DICT S1 WHERE S1.KEY_1_VALUE = TB.SECURITY_LEVEL_CODE AND S1.CATEGORY_CODE='SECURITY_LEVEL_CODE') as SECURITY_LEVEL_CODE,
            (SELECT S1.DATA_1_VALUE FROM ERMS_SYS_DATA_DICT S1 WHERE S1.KEY_1_VALUE = TB.STORAGE_TYPE_CODE AND S1.CATEGORY_CODE='STORAGE_TYPE_CODE') as STORAGE_TYPE_CODE,
            (SELECT ENG_TYPE FROM ERMS_BIZ_ENG_BASE_INFO ENG WHERE ENG.SID = TB.ENG_SID) AS ENG_TYPE,
            '案卷信息' AS ARCHIVE_TYPE_NAME,
            TB.PROJ_NAME AS PROJ_NAME,
                  TB.APPLY_UNIT AS APPLY_UNIT,
            TB.ARCH_BUS_TYPE as ARCH_BUS_TYPE,
            TB.ASSORT_NUM AS ASSORT_NUM,
                  (SELECT ASSORT_NAME FROM ERMS_BIZ_ASSORT_BUS A WHERE A.ASSORT_NUM = TB.ASSORT_NUM AND A.ORGANIZATION_CODE = TB.ORGANIZATION_CODE) AS ASSORT_NAME,
            TB.ORGANIZATION_CODE AS ORGANIZATION_CODE,
                  (SELECT ORGANIZATION_NAME FROM ERMS_BIZ_ORGANIZATION_INFO O WHERE O.ORGANIZATION_CODE = TB.ORGANIZATION_CODE) AS ORGANIZATION_NAME,
            TB.ARCH_CATEGORY_CODE AS ARCH_CATEGORY_CODE,
            TB.ARCHIVE_YEAR as ARCHIVE_YEAR,
			TB.NOTE as ARCH_NOTE
            FROM ARCH_INFO TB WHERE TB.ORGANIZATION_CODE is not null AND TB.SID ='${dataimporter.delta.SID}'"
					deltaQuery="SELECT TB.SID FROM ARCH_INFO TB WHERE TB.ORGANIZATION_CODE is not null  AND (TB.UPDATED_DT > TO_DATE('${dataimporter.last_index_time}','yyyy-MM-dd HH24:mi:ss') OR TB.CREATED_DT > TO_DATE('${dataimporter.last_index_time}','yyyy-MM-dd HH24:mi:ss'))">

				<field column = "SID" name="sid"/>
				<field column = "ENG_SID" name="engSid"/>
				<field column = "ZONE_ORG_CODE" name="zoneOrgCode"/>
				<field column = "ARCH_ID" name="archId"/>
				<field column = "ENG_ARCH_NO" name="engArchNo"/>
				<field column = "ARCH_TITLE" name="archTitle"/>
				<field column = "MAKE_ORG_NAME" name="makeOrgName"/>
				<field column = "MEDIA_TYPE_CODE" name="mediaTypeCode"/>
				<field column = "ARCH_TYPE_CODE" name="archTypeCode"/>
				<field column = "UNITS_CODE" name="unitsCode"/>
				<field column = "SPEC_CODE" name="specCode"/>
				<field column = "START_DATE" name="startDate" dateTimeFormat="yyyy-MM-dd"/>
				<field column = "END_DATE" name="endDate"  dateTimeFormat="yyyy-MM-dd"/>
				<field column = "SECURITY_LEVEL_CODE" name="securityLevelCode"/>
				<field column = "STORAGE_TYPE_CODE" name="storageTypeCode"/>
				<field column = "REG_NO" name="regNo"/>
				<field column = "ENG_TYPE" name="engType"/>
				<field column = "ARCHIVE_TYPE_NAME" name="archiveTypeName"/>
				<field column = "PROJ_NAME" name="projName"/>
				<field column = "APPLY_UNIT" name="applyUnit"/>
				<field column = "ARCH_BUS_TYPE" name="archBusType"/>
				<field column = "ASSORT_NUM" name="assortNum"/>
				<field column = "ASSORT_NAME" name="assortName"/>
				<field column = "ORGANIZATION_CODE" name="organizationCode"/>
				<field column = "ORGANIZATION_NAME" name="organizationName"/>
				<field column = "ARCH_CATEGORY_CODE" name="archCategoryCode"/>
				<field column = "ARCHIVE_YEAR" name="archiveYear"/>
				<field column = "ARCH_NOTE" name="archNote"/>
			   
				
				<entity name="archSpec" 
					query = "select SPEC.ARCH_SID,SPEC.NO, SPEC.PERSON_NAME, SPEC.IDENTITY_CARD, SPEC.UNIT, SPEC.ACCOUNT, SPEC.ACCOUNT_BANK, SPEC.EXTRACT_CONTENT, SPEC.REPLY_NO,
							  HOUSE_SELL_UNIT, SPEC.HOUSE_SELL_TYPE, SPEC.PLACE_PROPERTY, SPEC.RECORD_NO, SPEC.REG_NO, SPEC.CREATE_USER, SPEC.SEX,
							  POSITION_GRADE, SPEC.SENIORITY, SPEC.ACCUMULATION, SPEC.MATE, SPEC.MATE_UNIT, SPEC.MATE_SENIORITY, SPEC.MATE_ACCUMULATION,
							  MATE_IDENTITY_CARD, SPEC.HOUSE_ADDRESS_NUM, SPEC.HOUSE_AGE, SPEC.HOUASE_TYPE, SPEC.HOUSE_SOURCE, SPEC.BUILD_CONS,
							  FLOOR_NUMS, SPEC.DWELLING_TYPE, SPEC.DWELLING_SPEC, SPEC.PRICE, SPEC.OVERPROOF_PRICE, SPEC.PAYABLE, SPEC.PAY_ACTUALLY,
							  PAY_TOTAL_ACTUALLY, SPEC.IS_LOAN, SPEC.INVOISE_VALUE, SPEC.OLD_EQUITY_NO, SPEC.NOW_EQUITY_NO, SPEC.LODGE_SOURCE,
							  OLD_RECORD_NO, SPEC.OLD_REG_NO, SPEC.PURCH_DESCRIBE, SPEC.NEW_RECORD_NO, SPEC.NEW_REG_NO, SPEC.HOUSE_EQUITY_REG_NO,
							  ACTUALLY_SELL_PRICE, SPEC.APPLY_BY_UNIT, SPEC.OLD_GRADE, SPEC.NEW_GRADE, SPEC.HOUSE_ADDRESS, SPEC.HOUSE_AREA,
							  COMPENS_AMOUNT, SPEC.LODGE_ARCH, SPEC.REG_NO2, SPEC.CHECK_DATE, SPEC.CREATE_DATE, SPEC.COMPENS_SUBSIDY_AMOUNT, SPEC.HEIR,
							  ANCESTER, SPEC.OLD_HOUSE_NO, SPEC.NEW_HOUSE_NO, SPEC.DEPARTMENT, SPEC.UNIT_TYPE, SPEC.OUTLAY_SOURCE, SPEC.PUBLIC_HOUSE_NUM,
							  SALABILITY_HOUSE, SPEC.APPLY_HOUSE_NO, SPEC.OLD_LEAS_CONTRACT_NO, SPEC.HOUSE_NUMS, SPEC.APPLY_REASION,
							  HOME_ADDRESS, SPEC.MEET_NAME, SPEC.RESPON_UNIT, SPEC.MEET_DATE, SPEC.PROJ_CHECK_SITUATION, SPEC.PLANN_SUGGEST,
							  APPLY_DATE,APPLY_BY, SPEC.CONSTRUCTION_AREA, SPEC.BUS_TYPE FROM
							arch_bus_spec  SPEC WHERE SPEC.ARCH_SID ='${archInfo.SID}'">
					<field column="NO" name="no"  />
					<field column="PERSON_NAME" name="personName"  />
					<field column="IDENTITY_CARD" name="identityCard"  />
					<field column="UNIT" name="unit"  />
					<field column="ACCOUNT" name="account"  />
					<field column="ACCOUNT_BANK" name="accountBank"  />
					<field column="EXTRACT_CONTENT" name="extractContent"  />
					<field column="REPLY_NO" name="replyNo"  />
					<field column="HOUSE_SELL_UNIT" name="houseSellUnit"  />
					<field column="HOUSE_SELL_TYPE" name="houseSellType"  />
					<field column="PLACE_name" name="placename"  />
					<field column="RECORD_NO" name="recordNo"  />
					<field column="REG_NO" name="regNo"  />
					<field column="CREATE_USER" name="createUser"  />
					<field column="SEX" name="sex"  />
					<field column="POSITION_GRADE" name="positionGrade"  />
					<field column="SENIORITY" name="seniority"  />
					<field column="ACCUMULATION" name="accumulation"  />
					<field column="MATE" name="mate"  />
					<field column="MATE_UNIT" name="mateUnit"  />
					<field column="MATE_SENIORITY" name="mateSeniority"  />
					<field column="MATE_ACCUMULATION" name="mateAccumulation"  />
					<field column="MATE_IDENTITY_CARD" name="mateIdentityCard"  />
					<field column="HOUSE_ADDRESS_NUM" name="houseAddressNum"  />
					<field column="HOUSE_AGE" name="houseAge"  />
					<field column="HOUASE_TYPE" name="houaseType"  />
					<field column="HOUSE_SOURCE" name="houseSource"  />
					<field column="BUILD_CONS" name="buildCons"  />
					<field column="FLOOR_NUMS" name="floorNums"  />
					<field column="DWELLING_TYPE" name="dwellingType"  />
					<field column="DWELLING_SPEC" name="dwellingSpec"  />
					<field column="PRICE" name="price"  />
					<field column="OVERPROOF_PRICE" name="overproofPrice"  />
					<field column="PAYABLE" name="payable"  />
					<field column="PAY_ACTUALLY" name="payActually"  />
					<field column="PAY_TOTAL_ACTUALLY" name="payTotalActually"  />
					<field column="IS_LOAN" name="isLoan"  />
					<field column="INVOISE_VALUE" name="invoiseValue"  />
					<field column="OLD_EQUITY_NO" name="oldEquityNo"  />
					<field column="NOW_EQUITY_NO" name="nowEquityNo"  />
					<field column="LODGE_SOURCE" name="lodgeSource"  />
					<field column="OLD_RECORD_NO" name="oldRecordNo"  />
					<field column="OLD_REG_NO" name="oldRegNo"  />
					<field column="PURCH_DESCRIBE" name="purchDescribe"  />
					<field column="NEW_RECORD_NO" name="newRecordNo"  />
					<field column="NEW_REG_NO" name="newRegNo"  />
					<field column="HOUSE_EQUITY_REG_NO" name="houseEquityRegNo"  />
					<field column="ACTUALLY_SELL_PRICE" name="actuallySellPrice"  />
					<field column="APPLY_BY_UNIT" name="applyByUnit"  />
					<field column="OLD_GRADE" name="oldGrade"  />
					<field column="NEW_GRADE" name="newGrade"  />
					<field column="HOUSE_ADDRESS" name="houseAddress"  />
					<field column="HOUSE_AREA" name="houseArea"  />
					<field column="COMPENS_AMOUNT" name="compensAmount"  />
					<field column="LODGE_ARCH" name="lodgeArch"  />
					<field column="REG_NO2" name="regNo2"  />
					<field column="CHECK_DATE" name="checkDate" dateTimeFormat="yyyy-MM-dd"  />
					<field column="CREATE_DATE" name="createDate" dateTimeFormat="yyyy-MM-dd"  />
					<field column="COMPENS_SUBSIDY_AMOUNT" name="compensSubsidyAmount"  />
					<field column="HEIR" name="heir"  />
					<field column="ANCESTER" name="ancester"  />
					<field column="OLD_HOUSE_NO" name="oldHouseNo"  />
					<field column="NEW_HOUSE_NO" name="newHouseNo"  />
					<field column="DEPARTMENT" name="department"  />
					<field column="UNIT_TYPE" name="unitType"  />
					<field column="OUTLAY_SOURCE" name="outlaySource"  />
					<field column="PUBLIC_HOUSE_NUM" name="publicHouseNum"  />
					<field column="SALABILITY_HOUSE" name="salabilityHouse"  />
					<field column="APPLY_HOUSE_NO" name="applyHouseNo"  />
					<field column="OLD_LEAS_CONTRACT_NO" name="oldLeasContractNo"  />
					<field column="HOUSE_NUMS" name="houseNums"  />
					<field column="APPLY_REASION" name="applyReasion"  />
					<field column="HOME_ADDRESS" name="homeAddress"  />
					<field column="MEET_NAME" name="meetName"  />
					<field column="RESPON_UNIT" name="responUnit"  />
					<field column="MEET_DATE" name="meetDate" dateTimeFormat="yyyy-MM-dd"  />
					<field column="PROJ_CHECK_SITUATION" name="projCheckSituation"  />
					<field column="PLANN_SUGGEST" name="plannSuggest"  />
					<field column="APPLY_DATE" name="applyDate" dateTimeFormat="yyyy-MM-dd"  />
					<field column="APPLY_BY_UNIT" name="applyByUnit"  />
					<field column="APPLY_BY" name="applyBy"  />
					<field column="CONSTRUCTION_AREA"  name="constructionArea" />
					<field column="BUS_TYPE"  name="busType" />
				</entity>
				
			
				
			

				<entity name="205" 
					query = "SELECT DEV_ORG_NAME,DESIGN_ORG_NAME,DESIGN_ORG_PERSON,DESIGN_NO,APPROVAL_NO, LAND_LICENSE_NO, DEV_USE_PLANNING_NO FROM ARCH_205 AM WHERE AM.ARCH_SID ='${archInfo.SID}'">
						
						<field column="DEV_ORG_NAME"  name="205devOrgName" />
						<field column="DESIGN_ORG_NAME"  name="205designOrgName" />
						<field column="DESIGN_ORG_PERSON"  name="205designOrgPerson" />
						<field column="DESIGN_NO"  name="205designNo" />
						<field column="APPROVAL_NO"  name="205approvalNo" />
						<field column="LAND_LICENSE_NO"  name="205landLicenseNo" />
						<field column="DEV_USE_PLANNING_NO"  name="205devUsePlanningNo" />
				</entity>
				
				<entity name="206" 
					query = "SELECT PLANNING_VER_CERTIFICATE,TRAFFIC_PLANNING_OPINIONS_NO, UNIT_NAME FROM ARCH_206 AM WHERE AM.ARCH_SID ='${archInfo.SID}'">
						<field column="PLANNING_VER_CERTIFICATE"  name="206planningVerCertificate" />
						<field column="TRAFFIC_PLANNING_OPINIONS_NO"  name="206trafficPlanningOpinionsNo" />
						<field column="UNIT_NAME"  name="206unitName" />
				</entity>							
				
			
				<entity name="209" 
					query = "SELECT CONS_LAND_PLANNING_LICENSE FROM ARCH_209 AM WHERE AM.ARCH_SID ='${archInfo.SID}'">
						<field column="CONS_LAND_PLANNING_LICENSE"  name="209consLandPlanningLicense" />
				</entity>
				
			
				<entity name="211" 
					query = "SELECT APPLY_NAME, DESIGN_ORG_NAME, ENG_PLANNING_NO, PLANNING_OPINION_RECORD_NO, UNIT_NAME FROM ARCH_211 AM WHERE AM.ARCH_SID ='${archInfo.SID}'">
						<field column="APPLY_NAME"  name="211applyName" />
						<field column="DESIGN_ORG_NAME"  name="211designOrgName" />
						<field column="ENG_PLANNING_NO"  name="211engPlanningNo" />
						<field column="PLANNING_OPINION_RECORD_NO"  name="211planningOpinionRecordNo" />
						<field column="UNIT_NAME"  name="211unitName" />
				</entity>

			
			
			
				
				<entity name="504"
					query="select LAND_USE_UNIT,CONS_LAND_PLANNING_LICENSE, LAND_APPROVE_NO, LAND_RESERVE_NO, LAND_PARCEL from arch_504 where ARCH_SID ='${archInfo.SID}'">
						<field column="LAND_USE_UNIT" name="504landUseUnit"/>
						<field column="CONS_LAND_PLANNING_LICENSE" name="504consLandPlanningLicense"/>
						<field column="LAND_APPROVE_NO" name="504landApproveNo"/>
						<field column="LAND_RESERVE_NO" name="504landReserveNo"/>
						<field column="LAND_PARCEL" name="504landParcel"/>
				</entity>
				
				<entity name="226"
					query="select PUNISHER_NAME, COMPANY_NAME, CLIENT, CLIENT_UNIT  from arch_226 where ARCH_SID ='${archInfo.SID}'">
						<field column="PUNISHER_NAME" name="226punisherName"/>
						<field column="COMPANY_NAME" name="226companyName"/>
						<field column="CLIENT" name="226client"/>
						<field column="CLIENT_UNIT" name="226clientUnit"/>
				</entity>
				
				
		 </entity>
	 </document>
</dataConfig>

注意:${archInfo.SID}的写法。

在managed-schema.xml中配置:

<?xml version="1.0" encoding="UTF-8" ?>
<!--
 Licensed to the Apache Software Foundation (ASF) under one or more
 contributor license agreements.  See the NOTICE file distributed with
 this work for additional information regarding copyright ownership.
 The ASF licenses this file to You under the Apache License, Version 2.0
 (the "License"); you may not use this file except in compliance with
 the License.  You may obtain a copy of the License at

     http://www.apache.org/licenses/LICENSE-2.0

 Unless required by applicable law or agreed to in writing, software
 distributed under the License is distributed on an "AS IS" BASIS,
 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 See the License for the specific language governing permissions and
 limitations under the License.
-->

<!--  
 This is the Solr schema file. This file should be named "schema.xml" and
 should be in the conf directory under the solr home
 (i.e. ./solr/conf/schema.xml by default) 
 or located where the classloader for the Solr webapp can find it.

 This example schema is the recommended starting point for users.
 It should be kept correct and concise, usable out-of-the-box.

 For more information, on how to customize this file, please see
 http://wiki.apache.org/solr/SchemaXml

 PERFORMANCE NOTE: this schema includes many optional features and should not
 be used for benchmarking.  To improve performance one could
  - set stored="false" for all fields possible (esp large fields) when you
    only need to search on the field but don't need to return the original
    value.
  - set indexed="false" if you don't need to search on the field, but only
    return the field as a result of searching on other indexed fields.
  - remove all unneeded copyField statements
  - for best index size and searching performance, set "index" to false
    for all general text fields, use copyField to copy them to the
    catchall "text" field, and use that for searching.
  - For maximum indexing performance, use the ConcurrentUpdateSolrServer
    java client.
  - Remember to run the JVM in server mode, and use a higher logging level
    that avoids logging every request
-->

<schema name="digipower-basic" version="1.6">
    <!-- attribute "name" is the name of this schema and is only used for display purposes.
       version="x.y" is Solr's version number for the schema syntax and 
       semantics.  It should not normally be changed by applications.

       1.0: multiValued attribute did not exist, all fields are multiValued 
            by nature
       1.1: multiValued attribute introduced, false by default 
       1.2: omitTermFreqAndPositions attribute introduced, true by default 
            except for text fields.
       1.3: removed optional field compress feature
       1.4: autoGeneratePhraseQueries attribute introduced to drive QueryParser
            behavior when a single string produces multiple tokens.  Defaults 
            to off for version >= 1.4
       1.5: omitNorms defaults to true for primitive field types 
            (int, float, boolean, string...)
       1.6: useDocValuesAsStored defaults to true.
    -->

    <!-- Valid attributes for fields:
     name: mandatory - the name for the field
     type: mandatory - the name of a field type from the 
       fieldTypes section
     indexed: true if this field should be indexed (searchable or sortable)
     stored: true if this field should be retrievable
     docValues: true if this field should have doc values. Doc values are
       useful for faceting, grouping, sorting and function queries. Although not
       required, doc values will make the index faster to load, more
       NRT-friendly and more memory-efficient. They however come with some
       limitations: they are currently only supported by StrField, UUIDField
       and all Trie*Fields, and depending on the field type, they might
       require the field to be single-valued, be required or have a default
       value (check the documentation of the field type you're interested in
       for more information)
     multiValued: true if this field may contain multiple values per document
     omitNorms: (expert) set to true to omit the norms associated with
       this field (this disables length normalization and index-time
       boosting for the field, and saves some memory).  Only full-text
       fields or fields that need an index-time boost need norms.
       Norms are omitted for primitive (non-analyzed) types by default.
     termVectors: [false] set to true to store the term vector for a
       given field.
       When using MoreLikeThis, fields used for similarity should be
       stored for best performance.
     termPositions: Store position information with the term vector.  
       This will increase storage costs.
     termOffsets: Store offset information with the term vector. This 
       will increase storage costs.
     required: The field is required.  It will throw an error if the
       value does not exist
     default: a value that should be used if no value is specified
       when adding a document.
    -->

    <!-- field names should consist of alphanumeric or underscore characters only and
      not start with a digit.  This is not currently strictly enforced,
      but other field names will not have first class support from all components
      and back compatibility is not guaranteed.  Names with both leading and
      trailing underscores (e.g. _version_) are reserved.
    -->

    <!-- In this data_driven_schema_configs configset, only three fields are pre-declared: 
         id, _version_, and _text_.  All other fields will be type guessed and added via the
         "add-unknown-fields-to-the-schema" update request processor chain declared 
         in solrconfig.xml.
         
         Note that many dynamic fields are also defined - you can use them to specify a 
         field's type via field naming conventions - see below.
  
         WARNING: The _text_ catch-all field will significantly increase your index size.
         If you don't need it, consider removing it and the corresponding copyField directive.
    -->
    <field name="sid" type="string" indexed="true" stored="true" required="true" multiValued="false" />
    <!-- doc values are enabled by default for primitive types such as long so we don't index the version field  -->
    <field name="_version_" type="long" indexed="false" stored="false"/>
    <field name="_root_" type="string" indexed="true" stored="false" docValues="false" />
    <field name="_text_" type="text_general" indexed="true" stored="false" multiValued="true"/>
	
	<!-- 业务案卷基础表-->
	<field name="engSid" type="long" indexed="false" stored="true" omitNorms="true"/>
	<field name="zoneOrgCode" type="string" indexed="true" stored="true" omitNorms="true" />
	<field name="archId" type="string" indexed="true" stored="true" omitNorms="true" />
	<field name="engArchNo" type="string" indexed="true" stored="true" omitNorms="true" />
	<field name="archTitle" type="string" indexed="true" stored="true" omitNorms="true" />
	<field name="makeOrgName" type="string" indexed="true" stored="true" omitNorms="true" />
	<field name="mediaTypeCode" type="string" indexed="true" stored="true"/>
    <field name="archTypeCode" type="string" indexed="true" stored="true" omitNorms="true" /> 
	<field name="specCode" type="string" indexed="true" stored="true" omitNorms="true" multiValued="true"/>
	<field name="startDate" type="date" indexed="true" stored="true" omitNorms="true"/>
	<field name="endDate" type="date" indexed="true" stored="false" />
	<field name="archiveTypeName" type="string" indexed="true" stored="true" omitNorms="true" />
	<field name="projName" type="string" indexed="true" stored="false" />
	<field name="applyUnit" type="string" indexed="true" stored="true" omitNorms="true" />
	<field name="archBusType" type="int" indexed="true" stored="true" omitNorms="true" />
    <field name="assortNum" type="int" indexed="true" stored="true" omitNorms="true" />
    <field name="assortName" type="string" indexed="true" stored="true" omitNorms="true" />
    <field name="organizationCode" type="string" indexed="true" stored="true" omitNorms="true" />
    <field name="organizationName" type="string" indexed="true" stored="true" omitNorms="true" />
    <field name="archCategoryCode" type="string" indexed="true" stored="true" omitNorms="true" />
    <field name="archiveYear" type="string" indexed="true" stored="true" omitNorms="true" />
	<field name="archNote" type="string" indexed="true" stored="true" omitNorms="true" />
   
	
   <!-- tble : erms_biz_arch_bus_spec -->
	<field  name="no" type="string" indexed="true" stored="true" omitNorms="true" />
    <field  name="identityCard" type="string" indexed="true" stored="true" omitNorms="true" />
    <field  name="account" type="string" indexed="true" stored="true" omitNorms="true" />
    <field  name="accountBank" type="string" indexed="true" stored="true" omitNorms="true" />
    <field  name="extractContent" type="string" indexed="true" stored="true" omitNorms="true" />
    <field  name="replyNo" type="string" indexed="true" stored="true" omitNorms="true" />
    <field  name="houseSellUnit" type="string" indexed="true" stored="true" omitNorms="true" />
    <field  name="houseSellType" type="string" indexed="true" stored="true" omitNorms="true" />
    <field  name="placeProperty" type="string" indexed="true" stored="true" omitNorms="true" />
    <field  name="recordNo" type="string" indexed="true" stored="true" omitNorms="true" />
    <field  name="regNo" type="string" indexed="true" stored="true" omitNorms="true" />
    <field  name="createUser" type="string" indexed="true" stored="false" omitNorms="true" />
    <field  name="sex" type="string" indexed="true" stored="false" omitNorms="true" />
    <field  name="positionGrade" type="string" indexed="true" stored="false" omitNorms="true" />
    <field  name="seniority" type="int" indexed="true" stored="false" omitNorms="true" />
    <field  name="accumulation" type="string" indexed="true" stored="false" omitNorms="true" />
    <field  name="mate" type="string" indexed="true" stored="true" omitNorms="true" />
    <field  name="mateUnit" type="string" indexed="true" stored="true" omitNorms="true" />
    <field  name="mateSeniority" type="int" indexed="true" stored="false" omitNorms="true" />
    <field  name="mateAccumulation" type="string" indexed="true" stored="true" omitNorms="true" />
    <field  name="mateIdentityCard" type="string" indexed="true" stored="true" omitNorms="true" />
    <field  name="houseAddressNum" type="string" indexed="true" stored="true" omitNorms="true" />
    <field  name="houseAge" type="int" indexed="true" stored="false" omitNorms="true" />
    <field  name="houaseType" type="string" indexed="true" stored="false" omitNorms="true" />
    <field  name="houseSource" type="string" indexed="true" stored="false" omitNorms="true" />
    <field  name="buildCons" type="string" indexed="true" stored="false" omitNorms="true" />
    <field  name="floorNums" type="string" indexed="true" stored="false" omitNorms="true" />
    <field  name="dwellingType" type="string" indexed="true" stored="false" omitNorms="true" />
    <field  name="dwellingSpec" type="string" indexed="true" stored="false" omitNorms="true" />
    <field  name="price" type="double" indexed="true" stored="false" omitNorms="true" />
    <field  name="overproofPrice" type="string" indexed="true" stored="false" omitNorms="true" />
    <field  name="payable" type="double" indexed="true" stored="false" omitNorms="true" />
    <field  name="payActually" type="double" indexed="true" stored="false" omitNorms="true" />
    <field  name="payTotalActually" type="double" indexed="true" stored="false" omitNorms="true" />
    <field  name="isLoan" type="string" indexed="true" stored="false" omitNorms="true" />
    <field  name="invoiseValue" type="string" indexed="true" stored="false" omitNorms="true" />
    <field  name="oldEquityNo" type="string" indexed="true" stored="false" omitNorms="true" />
    <field  name="nowEquityNo" type="string" indexed="true" stored="false" omitNorms="true" />
    <field  name="lodgeSource" type="string" indexed="true" stored="false" omitNorms="true" />
    <field  name="oldRecordNo" type="string" indexed="true" stored="false" omitNorms="true" />
    <field  name="oldRegNo" type="string" indexed="true" stored="false" omitNorms="true" />
    <field  name="purchDescribe" type="string" indexed="true" stored="false" omitNorms="true" />
    <field  name="newRecordNo" type="string" indexed="true" stored="true" omitNorms="true" />
    <field  name="newRegNo" type="string" indexed="true" stored="true" omitNorms="true" />
    <field  name="houseEquityRegNo" type="string" indexed="true" stored="false" omitNorms="true" />
    <field  name="actuallySellPrice" type="double" indexed="true" stored="false" omitNorms="true" />
    <field  name="oldGrade" type="string" indexed="true" stored="true" omitNorms="true" />
    <field  name="newGrade" type="string" indexed="true" stored="true" omitNorms="true" />
    <field  name="houseAddress" type="string" indexed="true" stored="true" omitNorms="true" />
    <field  name="compensAmount" type="double" indexed="true" stored="false" omitNorms="true" />
    <field  name="lodgeArch" type="string" indexed="true" stored="false" omitNorms="true" />
    <field  name="regNo2" type="string" indexed="true" stored="false" omitNorms="true" />
    <field  name="checkDate" type="date" indexed="true" stored="false" omitNorms="true" />
    <field  name="createDate" type="date" indexed="true" stored="false" omitNorms="true" />
    <field  name="compensSubsidyAmount" type="double" indexed="true" stored="false" omitNorms="true" />
    <field  name="heir" type="string" indexed="true" stored="false" omitNorms="true" />
    <field  name="ancester" type="string" indexed="true" stored="false" omitNorms="true" />
    <field  name="oldHouseNo" type="string" indexed="true" stored="false" omitNorms="true" />
    <field  name="newHouseNo" type="string" indexed="true" stored="false" omitNorms="true" />
    <field  name="department" type="string" indexed="true" stored="false" omitNorms="true" />
    <field  name="unitType" type="string" indexed="true" stored="false" omitNorms="true" />
    <field  name="outlaySource" type="string" indexed="true" stored="false" omitNorms="true" />
    <field  name="publicHouseNum" type="int" indexed="true" stored="false" omitNorms="true" />
    <field  name="salabilityHouse" type="int" indexed="true" stored="false" omitNorms="true" />
    <field  name="applyHouseNo" type="string" indexed="true" stored="false" omitNorms="true" />
    <field  name="oldLeasContractNo" type="string" indexed="true" stored="false" omitNorms="true" />
    <field  name="houseNums" type="string" indexed="true" stored="false" omitNorms="true" />
    <field  name="applyReasion" type="string" indexed="true" stored="false" omitNorms="true" />
    <field  name="homeAddress" type="string" indexed="true" stored="false" omitNorms="true" />
    <field  name="meetName" type="string" indexed="true" stored="false" omitNorms="true" />
    <field  name="responUnit" type="string" indexed="true" stored="false" omitNorms="true" />
    <field  name="meetDate" type="date" indexed="true" stored="false" omitNorms="true" />
    <field  name="projCheckSituation" type="string" indexed="true" stored="false" omitNorms="true" />
    <field  name="plannSuggest" type="string" indexed="true" stored="false" omitNorms="true" />
    <field  name="applyDate" type="string" indexed="true" stored="false" omitNorms="true" />
    <field  name="applyByUnit" type="string" indexed="true" stored="true" omitNorms="true" />
    <field  name="busType" type="string" indexed="true" stored="false" omitNorms="true" />
	
	
	
	<!-- 205 -->
	<field   name="205devOrgName" type="string" indexed="true" stored="false" multiValued="true"/>
	<field   name="205designOrgName" type="string" indexed="true" stored="false" multiValued="true"/>
	<field   name="205designOrgPerson" type="string" indexed="true" stored="false" multiValued="true"/>
	<field   name="205designNo" type="string" indexed="true" stored="false" multiValued="true"/>
	<field   name="205approvalNo" type="string" indexed="true" stored="false" multiValued="true"/>
	<field   name="205landLicenseNo" type="string" indexed="true" stored="false" multiValued="true"/>
	<field   name="205devUsePlanningNo" type="string" indexed="true" stored="false" multiValued="true"/>
	
	
	
	
	<!-- 206 -->
	<field   name="206planningVerCertificate" type="string" indexed="true" stored="false" multiValued="true" />
	<field   name="206trafficPlanningOpinionsNo" type="string" indexed="true" stored="false" multiValued="true" />
	<field   name="206unitName" type="string" indexed="true" stored="false" multiValued="true" />
	
	

	
	<!-- 209 -->
	<field   name="209consLandPlanningLicense" type="string" indexed="true" stored="false" multiValued="true"/>
	
	
	<!-- 211 -->
	<field   name="211applyName" type="string" indexed="true" stored="false" multiValued="true"/>
	<field   name="211designOrgName" type="string" indexed="true" stored="false" multiValued="true"/>	
	<field   name="211engPlanningNo" type="string" indexed="true" stored="false" multiValued="true" />
	<field   name="211planningOpinionRecordNo" type="string" indexed="true" stored="false"  multiValued="true"/>
	<field   name="211unitName" type="string" indexed="true" stored="false" multiValued="true" />

	
	
	
	
	
	<!-- 504 -->
	<field   name="504landUseUnit" type="string" indexed="true" stored="false" multiValued="true" />
	<field   name="504consLandPlanningLicense" type="string" indexed="true" stored="false" multiValued="true" />
	<field   name="504landApproveNo" type="string" indexed="true" stored="false" multiValued="true"/>
	<field   name="504landReserveNo" type="string" indexed="true" stored="false" multiValued="true"/>
	<field   name="504landParcel" type="string" indexed="true" stored="false" multiValued="true"/>
	
	
	<!--226-->
	<field   name="226punisherName" type="string" indexed="true" stored="false" multiValued="true" />	
	<field   name="226companyName" type="string" indexed="true" stored="false" multiValued="true" />
	<field   name="226client" type="string" indexed="true" stored="false" multiValued="true" />
	<field   name="226clientUnit" type="string" indexed="true" stored="false" multiValued="true" />
	
   <!-- catchall copyField, containing all other searchable text copyFields (implemented
        via copycopyField further on in this schema  -->
   <field name="text" type="string" indexed="true" stored="false" multiValued="true"/>

    <!-- Only enabled in the "schemaless" data-driven example (assuming the client
         does not know what fields may be searched) because it's very expensive to index everything twice. -->
    <!-- <copyField source="*" dest="_text_"/> -->

    <!-- Dynamic field definitions allow using convention over configuration
       for fields via the specification of patterns to match field names. 
       EXAMPLE:  name="*_i" will match any field ending in _i (like myid_i, z_i)
       RESTRICTION: the glob-like pattern in the name attribute must have
       a "*" only at the start or the end.  -->
   
    <dynamicField name="*_i"  type="int"    indexed="true"  stored="true"/>
    <dynamicField name="*_is" type="ints"    indexed="true"  stored="true"/>
    <dynamicField name="*_s"  type="string"  indexed="true"  stored="true" />
    <dynamicField name="*_ss" type="strings"  indexed="true"  stored="true"/>
    <dynamicField name="*_l"  type="long"   indexed="true"  stored="true"/>
    <dynamicField name="*_ls" type="longs"   indexed="true"  stored="true"/>
    <dynamicField name="*_t"   type="text_general" indexed="true" stored="true"/>
    <dynamicField name="*_txt" type="text_general" indexed="true" stored="true"/>
    <dynamicField name="*_b"  type="boolean" indexed="true" stored="true"/>
    <dynamicField name="*_bs" type="booleans" indexed="true" stored="true"/>
    <dynamicField name="*_f"  type="float"  indexed="true"  stored="true"/>
    <dynamicField name="*_fs" type="floats"  indexed="true"  stored="true"/>
    <dynamicField name="*_d"  type="double" indexed="true"  stored="true"/>
    <dynamicField name="*_ds" type="doubles" indexed="true"  stored="true"/>

    <!-- Type used to index the lat and lon components for the "location" FieldType -->
    <dynamicField name="*_coordinate"  type="tdouble" indexed="true"  stored="false" useDocValuesAsStored="false" />

    <dynamicField name="*_dt"  type="date"    indexed="true"  stored="true"/>
    <dynamicField name="*_dts" type="date"    indexed="true"  stored="true" multiValued="true"/>

    <!-- some trie-coded dynamic fields for faster range queries -->
    <dynamicField name="*_ti" type="tint"    indexed="true"  stored="true"/>
    <dynamicField name="*_tis" type="tints"    indexed="true"  stored="true"/>
    <dynamicField name="*_tl" type="tlong"   indexed="true"  stored="true"/>
    <dynamicField name="*_tls" type="tlongs"   indexed="true"  stored="true"/>
    <dynamicField name="*_tf" type="tfloat"  indexed="true"  stored="true"/>
    <dynamicField name="*_tfs" type="tfloats"  indexed="true"  stored="true"/>
    <dynamicField name="*_td" type="tdouble" indexed="true"  stored="true"/>
    <dynamicField name="*_tds" type="tdoubles" indexed="true"  stored="true"/>
    <dynamicField name="*_tdt" type="tdate"  indexed="true"  stored="true"/>
    <dynamicField name="*_tdts" type="tdates"  indexed="true"  stored="true"/>

    <dynamicField name="attr_*" type="text_general" indexed="true" stored="true" multiValued="true"/>

    <dynamicField name="random_*" type="random" />

    <!-- uncomment the following to ignore any fields that don't already match an existing 
        field name or dynamic field, rather than reporting them as an error. 
        alternately, change the type="ignored" to some other type e.g. "text" if you want 
        unknown fields indexed and/or stored by default 
        
        NB: use of "*" dynamic fields will disable field type guessing and adding
        unknown fields to the schema. --> 
    <!--dynamicField name="*" type="ignored" multiValued="true" /-->

    <!-- Field to use to determine and enforce document uniqueness.
      Unless this field is marked with required="false", it will be a required field
    -->
    <uniqueKey>sid</uniqueKey>
	 <!-- field for the QueryParser to use when an explicit fieldname is absent -->
	<defaultSearchField>text</defaultSearchField>

	<!-- SolrQueryParser configuration: defaultOperator="AND|OR" -->
	<solrQueryParser defaultOperator="AND"/>
    <!-- copyField commands copy one field to another at the time a document
       is added to the index.  It's used either to index the same field differently,
       or to add multiple fields to the same field for easier/faster searching.

    <copyField source="sourceFieldName" dest="destinationFieldName"/>
    -->

	<copyField source="archiveTypeName" dest="text"/>
	<copyField source="archId" dest="text"/>
    <copyField source="engArchNo" dest="text"/>
    <copyField source="archTitle" dest="text"/>
    <copyField source="makeOrgName" dest="text"/>
    <copyField source="regNo" dest="text"/>
	<copyField source="archNote" dest="text"/>
   
	<!-- tble : erms_biz_arch_bus_spec -->
	<copyField source="meetName" dest="text"/>
	<copyField source="identityCard" dest="text"/>
	
	
	<copyField source="accumulation" dest="text"/>
	<copyField source="mate" dest="text"/>
	<copyField source="mateUnit" dest="text"/>
	<copyField source="mateSeniority" dest="text"/>
	<copyField source="mateAccumulation" dest="text"/>
	<copyField source="mateIdentityCard" dest="text"/>
	<copyField source="invoiseValue" dest="text"/>
	<copyField source="oldEquityNo" dest="text"/>
	<copyField source="nowEquityNo" dest="text"/>
	<copyField source="oldRecordNo" dest="text"/>
	<copyField source="oldRegNo" dest="text"/>
	
	 <!-- public copyField by assort -->
	<copyField  source="projName"   dest="text"/>
	<copyField 	source="startDate"   dest="text"/>
	<copyField  source="endDate"   dest="text"/>
	<copyField 	source="applyUnit"    dest="text"/>
	
	<!---->

	<!-- 205 -->
	<copyField  source="205devOrgName"    dest="text"/>
	<copyField  source="205designOrgName"    dest="text"/>
	<copyField  source="205designOrgPerson"    dest="text"/>
	<copyField  source="205designNo"    dest="text"/>
	<copyField  source="205approvalNo"    dest="text"/>
	<copyField  source="205landLicenseNo"    dest="text"/>
	<copyField  source="205devUsePlanningNo"    dest="text"/>
	
	<!-- 206 -->
	<copyField  source="206planningVerCertificate"    dest="text"/>
	<copyField  source="206trafficPlanningOpinionsNo"    dest="text"/>
	<copyField  source="206unitName"    dest="text"/>

	
	<!-- 209 -->
	<copyField  source="209consLandPlanningLicense"    dest="text"/>
	
	<!-- 211 -->
	<copyField  source="211applyName"    dest="text"/>
	<copyField  source="211designOrgName"    dest="text"/>
	<copyField  source="211engPlanningNo"    dest="text"/>
	<copyField  source="211planningOpinionRecordNo"    dest="text"/>
	<copyField  source="211unitName"    dest="text"/>
	<!-- 504 -->
	<copyField  source="504landUseUnit"    dest="text"/>
	<copyField  source="504consLandPlanningLicense"    dest="text"/>
	<copyField  source="504landApproveNo"    dest="text"/>
	<copyField  source="504landReserveNo"    dest="text"/>
	<copyField  source="504landParcel"    dest="text"/>
	<!--226-->
	<copyField  source="226punisherName"    dest="text"/>
	<copyField  source="226companyName"    dest="text"/>
	<copyField  source="226client"    dest="text"/>
	<copyField  source="226clientUnit"    dest="text"/>
	
	
	
	<!-- The StrField type is not analyzed, but indexed/stored verbatim.
       It supports doc values but in that case the field needs to be
       single-valued and either required or have a default value.
      -->
    <fieldType name="string" class="solr.StrField" sortMissingLast="true" docValues="true" />
    <fieldType name="strings" class="solr.StrField" sortMissingLast="true" multiValued="true" docValues="true" />

    <!-- boolean type: "true" or "false" -->
    <fieldType name="boolean" class="solr.BoolField" sortMissingLast="true"/>

    <fieldType name="booleans" class="solr.BoolField" sortMissingLast="true" multiValued="true"/>

    <!-- sortMissingLast and sortMissingFirst attributes are optional attributes are
         currently supported on types that are sorted internally as strings
         and on numeric types.
	     This includes "string","boolean", and, as of 3.5 (and 4.x),
	     int, float, long, date, double, including the "Trie" variants.
       - If sortMissingLast="true", then a sort on this field will cause documents
         without the field to come after documents with the field,
         regardless of the requested sort order (asc or desc).
       - If sortMissingFirst="true", then a sort on this field will cause documents
         without the field to come before documents with the field,
         regardless of the requested sort order.
       - If sortMissingLast="false" and sortMissingFirst="false" (the default),
         then default lucene sorting will be used which places docs without the
         field first in an ascending sort and last in a descending sort.
    -->    

    <!--
      Default numeric field types. For faster range queries, consider the tint/tfloat/tlong/tdouble types.

      These fields support doc values, but they require the field to be
      single-valued and either be required or have a default value.
    -->
    <fieldType name="int" class="solr.TrieIntField" docValues="true" precisionStep="0" positionIncrementGap="0"/>
    <fieldType name="float" class="solr.TrieFloatField" docValues="true" precisionStep="0" positionIncrementGap="0"/>
    <fieldType name="long" class="solr.TrieLongField" docValues="true" precisionStep="0" positionIncrementGap="0"/>
    <fieldType name="double" class="solr.TrieDoubleField" docValues="true" precisionStep="0" positionIncrementGap="0"/>

    <fieldType name="ints" class="solr.TrieIntField" docValues="true" precisionStep="0" positionIncrementGap="0" multiValued="true"/>
    <fieldType name="floats" class="solr.TrieFloatField" docValues="true" precisionStep="0" positionIncrementGap="0" multiValued="true"/>
    <fieldType name="longs" class="solr.TrieLongField" docValues="true" precisionStep="0" positionIncrementGap="0" multiValued="true"/>
    <fieldType name="doubles" class="solr.TrieDoubleField" docValues="true" precisionStep="0" positionIncrementGap="0" multiValued="true"/>

    <!--
     Numeric field types that index each value at various levels of precision
     to accelerate range queries when the number of values between the range
     endpoints is large. See the javadoc for NumericRangeQuery for internal
     implementation details.

     Smaller precisionStep values (specified in bits) will lead to more tokens
     indexed per value, slightly larger index size, and faster range queries.
     A precisionStep of 0 disables indexing at different precision levels.
    -->
    <fieldType name="tint" class="solr.TrieIntField" docValues="true" precisionStep="8" positionIncrementGap="0"/>
    <fieldType name="tfloat" class="solr.TrieFloatField" docValues="true" precisionStep="8" positionIncrementGap="0"/>
    <fieldType name="tlong" class="solr.TrieLongField" docValues="true" precisionStep="8" positionIncrementGap="0"/>
    <fieldType name="tdouble" class="solr.TrieDoubleField" docValues="true" precisionStep="8" positionIncrementGap="0"/>
    
    <fieldType name="tints" class="solr.TrieIntField" docValues="true" precisionStep="8" positionIncrementGap="0" multiValued="true"/>
    <fieldType name="tfloats" class="solr.TrieFloatField" docValues="true" precisionStep="8" positionIncrementGap="0" multiValued="true"/>
    <fieldType name="tlongs" class="solr.TrieLongField" docValues="true" precisionStep="8" positionIncrementGap="0" multiValued="true"/>
    <fieldType name="tdoubles" class="solr.TrieDoubleField" docValues="true" precisionStep="8" positionIncrementGap="0" multiValued="true"/>

    <!-- The format for this date field is of the form 1995-12-31T23:59:59Z, and
         is a more restricted form of the canonical representation of dateTime
         http://www.w3.org/TR/xmlschema-2/#dateTime    
         The trailing "Z" designates UTC time and is mandatory.
         Optional fractional seconds are allowed: 1995-12-31T23:59:59.999Z
         All other components are man

以上是关于Solr 实体嵌套的主要内容,如果未能解决你的问题,请参考以下文章

条件片段和导航重用

solr 学习片段

在 solr 3.4 中放置突出显示片段配置的位置

Solr 高亮是不是还可以指示返回的片段在原始字段中的位置或偏移量?

使用嵌套片段和动画对象

Solr Highlighting:如何为同一字段请求多个片段长度?