managed-schema 文件详解

managed-schema 文件详解

找到配置的Core Admin的目录下的配置文件,我这是solrhome\demo_core\conf\managed-schema
在managed-schema.xml文件中,主要配置SolrCore数据信息,包括:Field和FiledType的定义等信息,在solr中,Field和FieldType都需要先定义后使用。

  • field详解:

Solr 导入 数据库数据
name:指定域的名称(自定义)
type:指定域的类型
index:是否索引
是:(将分好的词进行索引,索引的目的,就是为了搜索)
否:(不索引,也就是不对该field域进行搜索)
stored:是否存储
是:将field域中的内容存储到文档域中。存储的目的,就是为了搜索页面显示取值用的。
否:不将field域中的内容存储到文档域中。不存储,则搜索页面中没法获取该field域中的值
required:是否必须
multiValued:是否多值,比如查询数据需要关联多个字段数据,一个field存储多个值信息,必须将multiValued设置为true。

  • dynamicField

Solr 导入 数据库数据

name*_i,定义它的type为int,那么在使用这个字段的时候,任何以_i结果的字段都被认为符合这个定义

  • uniqueKey

Solr 导入 数据库数据

其中的id是在field标签中已经定义好的域名,而且该域设置为required为true。一个managed-schema文件中必须有且仅有一个唯一键。

  • copyfield

复制域

应用场景:我们在搜索时比如输入java,一篇文章分为标题、简介、内容等很多字段,输入的关键字需要定制solr中的域进行检索,不可能从一个表中将所有的字段进行索引,因为有些字段不需要索引,所以出现copyField域,把多个域的关键词复制到同一个域,多个域时,可以放到一个域中。就不用定义那么多域了。搜索比较方便。

实例:<copyField source="projectName" dest="keywords"/>
Source:是Field域的名称
Dest:是destination的缩写 目标域

  • 使用案例:

    • 1、两个普通域:title和author
      Solr 导入 数据库数据
    • 2、使用复制域,将两个域进行索引检索
      Solr 导入 数据库数据
    • 3、该域名field name=”text”即使复制域
      Solr 导入 数据库数据
  • fieldType(域类型)

Solr 导入 数据库数据

solr的fieldtype属性 javaBean属性类型
string String
boolean Boolean
pint Integer
pdouble Double
plong Long
pfloat Float
pdata Data
  • 分词器

Solr 导入 数据库数据

Name:指定域类型的名称
Class:指定该域类型对应的solr的类型
Analyzer:指定分词器
Type:index、query,分别指定搜索和索引时的分析器
Tokenizer:指定分词器
Filter:指定过滤器

本作品采用《CC 协议》,转载必须注明作者和本文链接
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!