`

solr-schema配置详解

阅读更多

schema.xml文件中各个节点的配置极其作用。

schema.xml配置文件是用于定义index索引库的结构,有点类似于数据表表的定义。

schema.xml文件里面主要定义了索引数据类型,索引字段等信息。

主要包括了以下节点

1.fieldtype节点

fieldtype节点主要用来定义数据类型。

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

name指定的是节点定义的名称

class指向org.apache.solr.analysis中定义的类型名称

 

fieldtype还可以自己定义当前类型,建立索引(index)和查询数据(query)的时候使用的查询分析器。

analyzer指定查询分析器

tokenizer指定分词器

filter指定过滤器

<fieldType name="text_general" class="solr.TextField" positionIncrementGap="100">  
  <analyzer type="index">  
       <tokenizer class="solr.StandardTokenizerFactory"/>  
       <filter class="solr.StopFilterFactory" words="stopwords.txt" ignoreCase="true"/>  
       <filter class="solr.LowerCaseFilterFactory"/>  
  </analyzer>  
  <analyzer type="query">  
       <tokenizer class="solr.StandardTokenizerFactory"/>  
         <filter class="solr.StopFilterFactory" words="stopwords.txt" ignoreCase="true"/>  
         <filter class="solr.SynonymFilterFactory" ignoreCase="true" expand="true" synonyms="synonyms.txt"/>  
         <filter class="solr.LowerCaseFilterFactory"/>  
  </analyzer>  
</fieldType>

positionIncrementGap:可选属性,定义在同一个文档中此类型数据的空白间隔,避免短语匹配错误。

positionIncrementGap=100  只对 multiValue = true 的fieldType有意义。

StrField类型不被分析,而是被逐字地索引/存储  

solr.TextField 允许用户通过分析器来定制索引和查询,分析器包括一个分词器(tokenizer)和多个过滤器(filter)

 

2.field节点

field节点指定建立索引和查询数据的字段。

name代表数据字段名称

type代表数据类型,也就是之前定义的fieldtype

indexed代表是否被索引

stored代表是否被存储

multiValued是否有多个值,如果字段可能有多个值,尽可能设为true

_version节点和root节点是必须保留的,不能删除

<field name="_version_" stored="true" indexed="true" type="long"/>  
<field name="_root_" stored="false" indexed="true" type="string"/>  
<field name="ProductCode" stored="true" indexed="true" type="string" multiValued="false" required="true"/>  
<field name="ProductName" stored="true" indexed="true" type="text_general"/>  

 3.copyfield节点

通过这个节点,可以把一个字段的值复制到另一个字段中,也可以把多个字段的值同时复制到另一个字段中,这样搜索的时候都可以根据一个字段来进行搜索。

<copyField source="ProductName" dest="text"/>  
<copyField source="ProductCode" dest="text"/>  

 4.dynamicField节点

dynamicField表示动态字段,可以动态定义一个字段,只要符合规则的字段都可以。

*_i只要以_i结尾的字段都满足这个定义

<dynamicField name="*_i" stored="true" indexed="true" type="int"/>  

 5.其他节点

uniquekey节点是文档的唯一标识,相当于主键,每次更新删除的时候都根据这个字段来进行操作。必须填写

<uniqueKey>ProductCode</uniqueKey>

 

defaultSearchField指定搜索的时候默认搜索字段的值,

<defaultSearchField > text </ defaultSearchField >

 

solrQueryParser指定搜索时多个词之间的关系,可以是or,and两种

<solrQueryParser defaultOperator="OR" />

 

6.性能优化

将所有只用于搜索的,而不需要作为结果的field(特别是一些比较大的field)的stored设置为false。

将不需要被用于搜索的,而只是作为结果返回的field的indexed设置为false。

删除所有不必要的copyField声明。

为了索引字段的最小化和搜索的效率,将所有的text fields的index都设置成false,然后使用copyField将他们都复制到一个总的text field上,然后进行搜索。  

 

分享到:
评论

相关推荐

    solr-7.7.3配置详解,跟springboot整合 (二)

    在本篇中,我们将深入探讨Solr 7.7.3的配置细节,并了解如何将其与Spring Boot 2.x进行整合,构建一个高效、可扩展的搜索引擎应用。 **一、Solr 7.7.3核心配置** 1. **安装与启动** - 首先,你需要下载Solr 7.7.3...

    solr-4.9.0-安装部署文档

    - 配置 Solr 的 Data Import Handler(DIH)以连接 MySQL 数据库,这涉及到修改 Solr 的配置文件,如 managed-schema 或 schema.xml,以及在 Solr 的 DataConfig.xml 中定义数据源和查询语句。 完成以上步骤后,你...

    solr-8.5.2.zip

    5. **配置文件详解**:在压缩包中的 "solr-8.5.2" 文件夹下,你会找到一系列配置文件,如 `solrconfig.xml` 和 `schema.xml`。`solrconfig.xml` 定义了 Solr 的运行行为,包括数据导入、搜索处理链、请求处理器等;...

    apache-solr-ref-guide-5.1

    ### Apache Solr 5.1 参考指南详解 #### 一、Apache Solr 概述 Apache Solr 是一个高性能、可扩展的企业级搜索平台,由 Apache Software Foundation 开发和维护。它基于 Java 实现,并且是 Apache Lucene 的一个...

    solr-4.10.3.tgz.tgz

    #### 五、配置详解 1. **schema.xml:**这是Solr的核心配置文件之一,用于定义字段类型、字段属性等。 2. **solrconfig.xml:**配置Solr的各种行为,如索引策略、搜索逻辑等。 3. **core.properties:**定义Solr...

    mmseg4j-solr-2.1.0-with-mmseg4j-core.zip

    2. 配置Solr的schema.xml文件。在字段类型(FieldType)定义部分,创建一个使用mmseg4j分词器的新类型,例如: ```xml &lt;fieldType name="text_mmseg" class="solr.TextField"&gt; ...

    solr-tomcat7

    Solr的核心配置文件`solrconfig.xml`和`schema.xml`定义了请求处理器(Request Handler)和搜索组件(Search Component),分别负责处理来自客户端的请求和执行搜索操作。你可以根据业务需求自定义这些组件。 **六...

    solrCloud5.2.1 + tomcat7 + zookeeper3.4.6

    【SolrCloud5.2.1 + Tomcat7 + ...同时,不要忘记对Solr的配置文件(如`solrconfig.xml`和`schema.xml`)进行相应的调整,以满足特定的搜索需求。最后,记得定期备份重要数据,确保系统的稳定性和数据的安全性。

    mmseg4j-solr-2.3.0&mmseg4j;-core.zip

    自定义词库通常以文本文件形式存在,配置时需要在Solr的schema.xml文件中声明,并将其路径添加到mmseg4j的配置中。这样,mmseg4j在分词时会优先参考自定义词库,保证了特殊词汇的正确处理。 除了基本的分词功能,...

    Apache Solr(solr-7.7.3.zip)

    - **配置(Configuration)**: Solr 的配置文件位于 `conf` 目录下,包括 `schema.xml`(定义字段和字段类型)、`solrconfig.xml`(设置索引和查询行为)等,这些配置决定了 Solr 的行为。 **2. 安装与启动** 下载...

    windows-solr集群.docx

    ### Solr基础知识与单机配置详解 #### 一、Solr概述 - **定义**: Solr是Apache基金会下的一个顶级开源项目,它基于Lucene,提供了高性能的全文检索功能。Solr不仅支持复杂的查询语法,还具备高度的可配置性和扩展...

    solr中文分词器文件及配置.zip

    solr搜索框架的中文分词器文件及配置详解供大家下载,亲测可用.解压出来的jar包放到apache-tomcat-9.0.20\webapps\solr\WEB-INF\lib下(Tomcat项目里solr项目)其他三个文件放到apache-tomcat-9.0.20\webapps\solr\...

    图解Solr6.6.0安装与MySQL配置

    #### 二、Solr 6.6.0 安装步骤详解 **2.1 下载Solr 6.6.0** - 访问下载页面:[https://mirrors.tuna.tsinghua.edu.cn/apache/lucene/solr/6.6.0/]...

    solr5的中文分词器ik-analyzer-solr5-master.zip

    2. **配置Solr**:在Solr的`schema.xml`或`managed-schema`文件中,配置IK Analyzer作为字段类型分析器。 3. **自定义词典**:可以创建自定义词典,添加行业术语、品牌名称等,提高分词准确度。 4. **启动Solr**:...

    solr schema solrconfig 配置文件解析

    Solr,作为一款开源的全文搜索引擎,其核心配置文件包括`schema.xml`和`solrconfig.xml`,它们是Solr工作方式的基础。在深入理解这两个文件之前,我们需要先了解Solr的基本架构。 **1. Solr架构简介** Solr采用...

    solr环境搭建总结一

    5. **配置核心**: 核心的配置文件位于`server/solr/configsets/_default/conf`目录下,主要包括`schema.xml`(定义字段和类型)、`solrconfig.xml`(配置索引和查询行为)等。根据需求,你可以复制一个默认的核心并...

    mmseg4j-solr全版本及配置

    《mmseg4j-solr全版本与配置详解》 在大数据时代,搜索引擎技术成为信息检索的关键工具。其中,Solr作为一款强大的开源全文搜索引擎,广泛应用于各类信息系统的搜索功能。而mmseg4j则是Solr中常用的中文分词组件,...

Global site tag (gtag.js) - Google Analytics