solr核心组成

来源:互联网 发布:三国杀卧龙诸葛亮知乎 编辑:程序博客网 时间:2024/06/16 20:57

solr核心组成

  1. solr的实例类似于关系数据库找那个的表结构,核心配置文件为 managed-schema

  2. managed-schema 文件主要包含三部分:字段(Field),字段类型(FieldType) ,唯一键(uniqueKey)

  3. solr采用的是一种反向索引,就是重关键字到文档的映射过程,保存这种映射这种信息的所以称为反向索引

  4. 使用分词组件将文档分成一个个单独的单词,去除标点符号,去除停词

  5. 使用语言处理组件 变为小写,将单词缩减为词根的形式,如cars到car等,将单词转变为慈耿形式如drove到drive等,语言处理组件处理得到的结果成为词
  6. 索引组件,利用得到的词创建一个字典,对词进行排序,合并相同的词和词出现的文档

solr 运行环境

需要运行在一个web容器中,4.x 需要jdk1.7 6.x jdk1.8

solr schema.xml

schema.xml 主要配置字段名及字段的类型等信息

  1. field 字段

    字段定义方式
    name 字段名称
    Type 字段类型
    indexed 是否索引
    stored 是否存储
    require 是否必须
    multivalued 是否多值

  2. dynamicField 动态字段

    字段定义
    name 字段名称 通过通配符来表示
    type 字段类型,使用时候必须使用保存类型一致

    例如:
    {“id”:”change”,”year_is”:30} year_is 字段并没有在schema.xml 中配置,通过*_is 动态字段来配置,字段类型为int类型

  3. uniqueKey 唯一主键

    指定一个主键的字段,每个实例中必须有且只有一个唯一的主键

  4. copyField 复制字段

    source 来源字段

    dest 目标字段

    将源字段的内容复制到目标字段中,例如:如果要实时对标题和正文同时进行查询,需要定义一个新字段,将标题和正文复制到这个新字段,索引的时候,直接从这个新字段查询

  5. FieldType 字段类型

    name 名字

    class 类名 也是solr中真正的类型的类名

    如果fieldType 是solr.TextFiled类,可以配置分词器,

    type:index (索引分词器),query(搜索分词器)

    tokenizer:分词器

    Filter:过滤器

    例如:

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