iBizModel 全文检索体系(PSSYSSEARCHSCHEME)模型详解
iBizModel全文检索模型体系详解
全文检索是现代企业信息系统中的核心功能之一,它支持高效、灵活的文本搜索和数据查询。iBizModel作为全面的模型体系,提供了完整的全文检索模型体系,涵盖了从检索体系定义到具体文档、属性和实体映射的全流程。本文将详细介绍iBizModel全文检索模型体系的应用场景、模型管理图例和建模DSL,帮助您深入理解并应用这一强大功能。
一、全文检索模型体系概述
iBizModel全文检索模型体系是一个层次化的模型结构,以PSSYSSEARCHSCHEME(全文检索体系)为根节点,向下延伸出PSSYSSEARCHDOC(全文检索文档)、PSSYSSEARCHFIELD(全文检索属性)、PSSYSSEARCHDE(全文检索实体)和PSSYSSEARCHDEFIELD(全文检索实体属性)等核心模型。这一体系支持多种搜索引擎类型,包括ElasticSearch、Solr和用户自定义引擎,提供了灵活的配置选项和强大的扩展能力。
全文检索体系的核心价值在于将业务数据与搜索能力深度融合,通过标准化的模型定义,实现数据的自动索引、高效检索和智能分析。体系支持文档分片、副本配置、属性数据类型定义、分析器配置等高级功能,能够满足从简单文档搜索到复杂数据分析的各种业务需求。
二、应用场景分析
1. 企业文档管理系统
在企业文档管理场景中,全文检索体系可用于构建智能文档搜索平台。例如,合同文档管理系统可以通过PSSYSSEARCHSCHEME定义合同搜索体系,使用PSSYSSEARCHDOC创建合同文档索引,通过PSSYSSEARCHFIELD定义标题、签署日期、合同金额等搜索属性。用户可以通过关键词快速定位相关合同,支持按日期范围、金额区间等条件进行高级筛选。
具体实现中,合同实体(PSDATAENTITY)通过PSSYSSEARCHDE与检索文档建立映射关系,确保合同数据的实时同步和索引更新。这种架构支持高并发访问,能够处理海量文档数据,同时保证搜索响应速度和结果准确性。
2. 知识库和内容管理系统
对于知识库和内容管理场景,全文检索体系支持文档内容的全文本索引和智能检索。通过PSSYSSEARCHDOC定义知识文档,配置多语言分析器,支持中英文混合内容的准确搜索。文档属性可以包括标题、摘要、正文内容、标签、作者、创建时间等,满足多维度的搜索需求。
在此场景中,PSSYSSEARCHDE的threadrunmode属性可以设置为线程执行模式,确保大量文档的索引更新不会阻塞主业务流程。同时,通过配置适当的shards和replicas参数,实现搜索系统的高可用和水平扩展。
三、模型管理图例
以下是iBizModel全文检索模型体系的层次结构和关系图,使用Mermaid语法表示:
该图清晰地展示了全文检索模型体系的层次结构:
- PSSYSSEARCHSCHEME作为根模型,管理整个检索体系
- PSSYSSEARCHDOC定义具体的检索文档,包含多个PSSYSSEARCHFIELD
- PSSYSSEARCHDE建立业务实体与检索体系的桥梁,包含PSSYSSEARCHDEFIELD
- PSSYSSEARCHDEFIELD将实体属性映射到检索属性,实现数据同步
四、建模DSL详解
1. PSSYSSEARCHSCHEME(全文检索体系)
PSSYSSEARCHSCHEME是全文检索体系的根模型,定义检索体系的基本配置和引擎类型。
pssyssearchscheme (codename: "EnterpriseSearch", // 体系代码标识,在模块内唯一name: "企业搜索体系", // 体系名称searchenginetype: "ELASTICSEARCH", // 搜索引擎类型docshards: 5, // 默认分片数docreplicas: 1, // 默认副本数objnamecase: "DEFAULT", // 对象名称转换规则psmoduleid: "base" // 所属系统模块
){// 子模型定义...
}
关键属性说明:
searchenginetype
:支持ELASTICSEARCH、SOLR、USER三种类型docshards
和docreplicas
:控制索引的分布和冗余,影响搜索性能和可靠性objnamecase
:数据库对象名称转换,支持DEFAULT、UCASE、LCASE
2. PSSYSSEARCHDOC(全文检索文档)
PSSYSSEARCHDOC定义具体的检索文档,包含文档级别的配置和属性集合。
pssyssearchdoc (codename: "ContractDocument",name: "CONTRACTDOCUMENT",logicname: "合同文档",replicas: 2, // 文档副本数shards: 3, // 文档分片数defaultmode: 1, // 是否默认文档pssyssearchschemeid: "base.EnterpriseSearch"
){pssyssearchfield (name: "TITLEFIELD",codename: "TitleField",logicname: "标题属性",fieldtype: "TEXT", // 属性数据类型indexflag: 1, // 是否索引storeflag: 1, // 是否存储analyzer: "ik_max_word", // 索引分析器searchanalyzer: "ik_smart", // 搜索分析器stddatatype: 25 // 标准数据类型)pssyssearchfield (name: "SIGNDATEFIELD",codename: "SignDateField", logicname: "签署日期属性",fieldtype: "DATE", // 日期类型indexflag: 1,storeflag: 0,dateformat: "yyyy-MM-dd", // 日期格式stddatatype: 5)
}
文档配置重点:
replicas
和shards
:可覆盖体系默认配置,实现细粒度控制defaultmode
:标记为默认文档,在无指定文档时使用- 支持多种fieldtype:TEXT、INTEGER、DATE、FLOAT、BOOLEAN等
3. PSSYSSEARCHFIELD(全文检索属性)
PSSYSSEARCHFIELD定义文档的具体搜索属性,控制索引和搜索行为。
pssyssearchfield (name: "CONTENTFIELD",codename: "ContentField",logicname: "内容属性", fieldtype: "TEXT",indexflag: 1,storeflag: 1,analyzer: "ik_max_word",searchanalyzer: "ik_smart",fielddataflag: 0, // 是否启用属性数据模式pkey: 0, // 是否主键stddatatype: 25,pssyssearchdocid: "base.EnterpriseSearch.CONTRACTDOCUMENT"
)
属性类型详解:
- 文本类型:配置分词器,支持中文智能分词
- 数值类型:支持精确匹配和范围查询
- 日期类型:支持日期格式化和时间范围查询
- 地理位置类型:支持地理空间查询
4. PSSYSSEARCHDE(全文检索实体)
PSSYSSEARCHDE建立业务实体与检索文档的映射关系,实现数据同步。
pssyssearchde (codename: "ContractSearchEntity",name: "合同搜索实体", psdeid: "base.CONTRACT", // 引用的业务实体threadrunmode: 1, // 线程运行模式pssyssearchdocid: "base.EnterpriseSearch.CONTRACTDOCUMENT",pssyssearchschemeid: "base.EnterpriseSearch"
){pssyssearchdefield (name: "TITLE",codename: "title",psdefid: "base.CONTRACT.TITLE", // 实体属性引用pssyssearchfieldid: "base.EnterpriseSearch.CONTRACTDOCUMENT.TITLEFIELD",defaultvaluetype: "SESSION", // 默认值类型defaultvalue: "userid" // 默认值参数)
}
实体映射特性:
threadrunmode
:支持线程执行,避免阻塞主业务psdeid
:引用具体的业务实体,建立数据关联- 支持实时数据同步和批量索引更新
5. PSSYSSEARCHDEFIELD(全文检索实体属性)
PSSYSSEARCHDEFIELD定义实体属性与检索属性的映射规则。
pssyssearchdefield (name: "SIGNDATE",codename: "signdate",psdefid: "base.CONTRACT.SIGNDATE",pssyssearchfieldid: "base.EnterpriseSearch.CONTRACTDOCUMENT.SIGNDATEFIELD",pssyssearchdeid: "base.EnterpriseSearch.ContractSearchEntity",defaultvaluetype: "CURTIME" // 当前时间作为默认值
)
映射配置要点:
defaultvaluetype
:支持多种默认值类型,包括SESSION、APPLICATION、UNIQUEID等- 支持属性值转换和格式化
- 可配置多个属性映射到同一检索属性
五、完整DSL示例
以下是一个完整的企业合同搜索体系DSL示例:
pssyssearchscheme (codename: "ContractSearchScheme",name: "合同搜索体系",searchenginetype: "ELASTICSEARCH",docshards: 5,docreplicas: 1,objnamecase: "DEFAULT",psmoduleid: "base"
){pssyssearchdoc (name: "CONTRACTDOCUMENT",codename: "ContractDocument",logicname: "合同文档",replicas: 2,shards: 3,defaultmode: 1){pssyssearchfield (name: "TITLEFIELD",codename: "TitleField",logicname: "标题属性",fieldtype: "TEXT",indexflag: 1,storeflag: 1,analyzer: "ik_max_word",searchanalyzer: "ik_smart",stddatatype: 25)pssyssearchfield (name: "CONTENTFIELD",codename: "ContentField",logicname: "内容属性",fieldtype: "TEXT",indexflag: 1,storeflag: 1,analyzer: "ik_max_word",searchanalyzer: "ik_smart",stddatatype: 25)pssyssearchfield (name: "SIGNDATEFIELD",codename: "SignDateField",logicname: "签署日期属性",fieldtype: "DATE",indexflag: 1,storeflag: 0,dateformat: "yyyy-MM-dd",stddatatype: 5)pssyssearchfield (name: "AMOUNTFIELD",codename: "AmountField",logicname: "金额属性",fieldtype: "DOUBLE",indexflag: 1,storeflag: 1,stddatatype: 6)}pssyssearchde (codename: "ContractSearchEntity",name: "合同搜索实体",psdeid: "base.CONTRACT",threadrunmode: 1){pssyssearchdefield (name: "TITLE",codename: "title",psdefid: "base.CONTRACT.TITLE",pssyssearchfieldid: "base.ContractSearchScheme.CONTRACTDOCUMENT.TITLEFIELD",defaultvaluetype: "SESSION",defaultvalue: "userid")pssyssearchdefield (name: "CONTENT",codename: "content", psdefid: "base.CONTRACT.CONTENT",pssyssearchfieldid: "base.ContractSearchScheme.CONTRACTDOCUMENT.CONTENTFIELD")pssyssearchdefield (name: "SIGNDATE",codename: "signdate",psdefid: "base.CONTRACT.SIGNDATE",pssyssearchfieldid: "base.ContractSearchScheme.CONTRACTDOCUMENT.SIGNDATEFIELD",defaultvaluetype: "CURTIME")pssyssearchdefield (name: "AMOUNT",codename: "amount",psdefid: "base.CONTRACT.AMOUNT",pssyssearchfieldid: "base.ContractSearchScheme.CONTRACTDOCUMENT.AMOUNTFIELD")}
}
六、总结
iBizModel全文检索模型体系提供了一个完整、灵活且强大的搜索解决方案,通过层次化的模型设计和丰富的配置选项,能够满足各种复杂的业务搜索需求。从体系定义到具体属性映射,每个环节都经过精心设计,确保搜索功能的高效性、可靠性和可扩展性。
该体系的核心优势在于:
- 标准化建模:通过统一的模型规范,降低系统复杂度
- 灵活配置:支持多种搜索引擎和丰富的配置选项
- 性能优异:通过分片、副本等机制保障大规模数据下的搜索性能
- 易于扩展:模块化设计支持功能扩展和定制化开发
- 生态集成:与iBizModel其他模型体系无缝集成,形成完整的解决方案
在实际应用中,建议根据具体业务需求合理设计检索体系结构,优化配置参数,并建立完善的监控和维护机制,确保搜索系统的稳定运行和持续优化。通过充分利用iBizModel全文检索模型体系的能力,企业可以构建出高效、智能的搜索平台,显著提升业务处理效率和用户体验。