博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Solr 配置文件之schema.xml
阅读量:4326 次
发布时间:2019-06-06

本文共 2206 字,大约阅读时间需要 7 分钟。

schema.xml这个配置文件的根本目的是为了通过配置告诉Solr怎样建立索引。
solr的数据结构例如以下:
  • document:一个文档、一条记录
    • field:域、属性
solr通过搜索某个或某些field,返回若干个符合条件的document。或者按搜索的score排序返回。
假设跟数据库对照,document相当于数据库的表,field相当于表中的字段。而schema.xml就是为了定义一个表的结构(定义各个field的名字、类型、约束、等等)。
schema.xml的基本结构例如以下:
<schema>
    <types>
    <fields>
    <uniqueKey>
    <copyField>
</schema>
经常使用的配置说明:
  • field:定义一个document中的各个fields
    • name:必填。该field的名字。前后都有下划线的name是系统保留的名字,比方“_version_”
    • type:必填。

      类型。相应于fieldType的name

    • default:该field的缺省值
    • indexed:true/false。是否为该field建立索引,以让用户能够搜索它、统计它(facet)
    • stored:true/false,定义这个field能否够返回给查询者
    • multiValued:true/false。能否够容纳多个值(比方多个copyField的dest指向它)。假设是true。则该field不能被排序、不能作为uniqueKey
    • required:true/false。告诉solr这个field是否接受空值,缺省为false
    • docValues:true/false。建立document-to-value索引。以提高某些特殊搜索的效率(排序、统计、高亮)
  • copyField:把一个field的内容复制到另外一个field中。一般用来把几个不同的field copy到同一个field中,以方便仅仅对一个field进行搜索
    • source:被拷贝的field,支持用通配符指定多个field,比方:*_name
    • dest:复制到的目的field
    • maxChars:最大字符数
  • uniqueKey:指定一个field为唯一索引
  • fieldType:定义field的类型,包含以下一些属性
    • name:必填,被field配置使用
    • class:必填,filedType的实现类。solr.TextField是路径缩写,"等价于"org.apache.solr.schema.TextField"
    • multiValued:?
    • positionIncrementGap:指定mutiValued的距离
    • ananlyzer:假设class是solr.TextField,这个配置是必填的。

      告诉solr怎样处理某些单词、怎样分词,比方要不要去掉“a”。要不要所有变成小写……

      • type:index或query
      • tokenizer:分词器,比方:StandardTokenizerFactory
      • filter:过滤器。比方:LowerCaseFilterFactory
  • dynamicField:用通配符定义一个field来存在没有被field定义的漏网之鱼
    • name:使用通配符。比方“*_i”,来处理类似“cost_i”之类的field
一个简单的样例:
id
注:solrconfig.xml配置文件里,requestHandler "/select"的缺省“df”是“text”。假设依照上面的配置。我们想要的缺省搜索info_text,所以须要在solrconfig.xml中改动:
  <requestHandler name="/select" class="solr.SearchHandler">
     <lst name="defaults"> 
       <str name="echoParams">explicit</str>
       <int name="rows">10</int>
       <str name="defType">edismax</str>
       
<str name="df">info_text</str>
     </lst>
    </requestHandler>
能够通过http api获取schema信息:
(原创文章,转载请注明转自Clement-Xu的博客)

转载于:https://www.cnblogs.com/gccbuaa/p/7259811.html

你可能感兴趣的文章
【UVA11806 Cheerleaders】 题解
查看>>
TCP三次握手和四次挥手
查看>>
【SVN】win7 搭建SVN服务器
查看>>
iOS第三方做滤镜最主流的开源框架GPUImage
查看>>
面向对象三大特性
查看>>
网络架构与七层参考模式简介
查看>>
用python实现经典排序
查看>>
node-1
查看>>
Chessboard(规律)&&阿里巴巴和n个大盗(规律)
查看>>
设置Linux防火墙
查看>>
Nginx+Keepalived实现高可用站点
查看>>
php 获取文件信息相关基础函数
查看>>
读属性文件直接执行其中的方法
查看>>
mysql 引擎区分
查看>>
C#中的virtual关键词的解释
查看>>
基于Ubuntu14.04-LTS下安装docker
查看>>
leetcode 303. Range Sum Query - Immutable(前缀和)
查看>>
第十二周作业
查看>>
DELPHI NEXTGEN编译开关
查看>>
INDY10的IDHttpServer应答客户端
查看>>