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 实体嵌套的主要内容,如果未能解决你的问题,请参考以下文章