solrStudy1-schema.xml详解

schema.xml 第一级的结构如下所示:这个例子不是一个完整的 xml ,但是给出了这个文件重要的部分
< schema >
< types >
< fields >
< uniqueKey >
< defaultSearchField >
< solrQueryParser defaultOperator>
< copyField >
</ schema >
-------------------------------------------------------
schema.xml中字段类型定义
字段类型定义在 schema.xml 的 types 这个元素里头。这里是一个字段类型定义的例子

Solr 的一个字段类型包括四个部分:

  • 字段类型名称,一个字段通过引用改名称来指定其是哪个类型的
  • 实现类名称,表示该类型的字段通过这一实现类来处理
  • 分析器,文本类型的字段会包含该描述,可以指定索引时用什么分析器,搜索这一类型字段时用什么分析器。
  • 配置切词器就是在这个地方配置的。
  • 字段属性
< fieldType name = "textTight"
 
positionIncrementGap = "100" >
 
< analyzer >
 
< tokenizer />
 
< filter
 
synonyms = "synonyms.txt" ignoreCase = "true" expand = "false" />
 
< filter
 
generateWordParts = "0" generateNumberParts = "0"
 
catenateWords = "1" catenateNumbers = "1" catenateAll = "0" />
 
< filter />
 
< filter
 
language = "English" protected = "protwords.txt" />
 
< filter />
</ analyzer >
 
</ fieldType >
以上例子的第一行包含了字段类型名称,textTight,和字段的处理的实现类,solr.TextField。这一实现类用于保证字段可以被正确的处理。在这个文件里,一些事项类采用了缩写,solr.TextField其实就是 org.apache.solr.schema.TextField
---------------------------------查询解析操作符--------------------------------
在使用多个条件进行查询时,Solr 可能返回满足所有条件的结构或者满足部分条件的结果。operator 控制这一行为,operator 包含 AND 和 OR,AND 将返回满足所有条件的结果,OR将返回满足任一条件的结果。
在 schema.xml,使用 solrQueryParser 元素来控制使用 AND 还是 OR。默认 operator 的设置只在 lucene 查询时生效,对于 DisMax 和扩展的 DisMax 无效,DisMax 和扩展 DisMax 内部采用硬编码的方式使用了 OR 操作。
1
< solrQueryParser defaultOperator = "OR" />
 

------------------------------------默认搜索字段------------------------

在使用lucene查询解析器时,如果没有指定字段名称,将在 defaultSearchField 进行查询。DisMax 和 扩展的 DisMax 查询解析中不会使用这个值。
定义默认查询字段格式如下:
1
< defaultSearchField >text</ defaultSearchField >

 

其中 text 为字段名称。

----------------------------------uniqueKey------------------------------

uniqueKey 元素用来表示一个文档的唯一值,类似数据库ID。尽管uniqueKey不是必须,但在程序设计过程中还是建议使用。举个例子,在更新一个文档时,需要通过uniqueKey来找到需要更新的文档。uniqueKey在schema中是这样定义的:

 

1
< uniqueKey >id</ uniqueKey >

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值