这里描述了schema.xml中的其他几个重要的元素.

唯一主键-Unique Key

  uniqueKey元素一篇文档的唯一标记,它几乎总是保证您的应用程序设计,例如,如果你更新索引中的文档,需要用到唯一主键uniqueKey来操作.

<uniqueKey>id</uniqueKey>

  从solr 4开始,schema默认值和copyFields字段不能用于填充uniqueKey 字段.同样也不能使用UUIDUpdateProcessorFactory来自动生成uniqueKey的值.

默认搜索字段

  如果使用Lucene的查询解析器,没有指定名称的查询使用默认的defaultSearchField对应的字段.DisMax和Extended DisMax查询解析器不会使用这个默认值.

警告:
defaultSearchField已经废弃,在solr3.6以及更高版本.相应的,可以使用df请求参数.在某些时候,defaultSearchField可能会被移除.

关于更多的查询解析器的信息,参考Query Syntax and Parsing

查询解析器的默认操作

  在查询多个词(term)时,solr既可以返回全部词汇都包含的文档,也可以返回部分词汇包含的文档.解析器的默认操作既不是DisMax也不是Extended DisMax

.默认操作为OR.

警告:
查询解析器默认操作参数在solr3.6以及更高版本已经废弃,可以在请求处理器(handler)中设置q.op参数来代替.

Similarity-相似度

  Similiarity是一个Lucene类,用来评分一个文档.这个类可以改变,以便提供一个自定义的排序.对于solr4,你可以为每一个字段配置一个不同的similarity.意思就是评分一个文档,将会依赖于每个字段(filed)的不同而不同.尽管如此,仍需要在schema.xml中配置一个全局性的similarity,使暗含的DefaultSimilarityFactory实例使用.

  全局的<similarity>声明可以指定一个自定义的similarity实现,用来让solr处理索引时使用.similarity可以直接通过关联一个无参构造器的类的名称来指定.

<similarity class="solr.DefaultSimilarityFactory"/>

  或者关联一个SimilarityFactory的实现,包含一些可选的初始化参数:

<similarity class="solr.DFRSimilarityFactory">
<str name="basicModel">P</str>
<str name="afterEffect">L</str>
<str name="normalization">H2</str>
<float name="c">7</float>
</similarity>

  solr4开始,similarity工厂可以在个别的字段类型中指定:

<fieldType name="text_ib">
<analyzer/>
<similarity class="solr.IBSimilarityFactory">
<str name="distribution">SPL</str>
<str name="lambda">DF</str>
<str name="normalization">H2</str>
</similarity>
</fieldType>

  这个例子中使用了IBSimilarityFactory,还有几个其他的similarity实现需要使用到,对于solr4.2来说,添加了SweetSpotSimilarityFactory.其他的选项还包括BM25SimilarityFactory,DFRSimilarityFactory,SchemaSimilarityFactory等.更多的细节,请参考similarity factories

相关主题

  SchemaXML-Miscellaneous Settings

  UniqueKey

1.4.6 其他Schema元素的更多相关文章

  1. XSD - <schema> 元素

    <schema> 元素 <schema> 元素是每一个 XML Schema 的根元素: <?xml version="1.0"?> <x ...

  2. webservice03#schema#元素属性定义

    工具软件XMLSpy 2010 破解版,是非常好的写XMl的工具软件. 1,Schema的好处: Schema出现的目的是通过一个更加合理的方式来编写xml的限制文件(基于xml语法的方式): Sch ...

  3. XML Schema命名空间解析

    URI Web中汇集了各种资源.资源可以是具有标识的任何事物, 如文档. 文件. 菜单项. 计算机. 服务等, 甚至可以包括人. 组织和概念[BernersLee 1998].在Web体系结构中, ...

  4. Solr:Schema设计

    本文已挪至  http://www.zhoujingen.cn/blog/8546.html Solr将数据以结构化的方式存入系统中,存储的过程中可以对数据建立索引,这个结构的定义就是通过schema ...

  5. XML学习笔记(三) -- Schema

    标签(空格分隔): 学习笔记 Schema的格式 XML Schema文档是由元素.属性.命名空间和XML文档中的其他节点构成的. XML Schema有两种重要的Schema模型:Microsoft ...

  6. XML Schema的基本语法(转)

    XML Schema的基本语法(转) XSDL(XML Schema定义语言)由元素.属性.命名空间和XML文档种的其他节点构成的. 一.XSD中的元素 XSD文档至少要包含:schema根元素和XM ...

  7. Solr5之Schema.xml详解

    schema.xml 是用来定义索引数据中的域的,包括域名称,域类型,域是否索引,是否分词,是否存储,是否标准化即 Norms ,是否存储项向量等等. schema.xml 配置文件的根元素就是 sc ...

  8. XML详解:第二部分 XML Schema

    声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...

  9. xml之Schema架构

    1.什么是Schema架构 2.Schema文档结构  3.Schema元素类型 1>element元素 <!--简单数据:类型--> <xs:element name=&qu ...

随机推荐

  1. 游戏被App Store下架 如何快速上线?

    游戏被App Store下架 如何快速上线? 发布者: sea_bug | 发布时间: 2014-12-20 14:17| 评论数: 0 近日,有媒体报道出国内某家CP的产品被苹果从App Store ...

  2. Struts ForwardAction Example

    In Struts MVC model, you have to go thought the Action Controller to get a new view page. In some ca ...

  3. 建表的sql

    1. 创建用户表 create table user( id int unsigned not null primary key auto_increment comment '自增id', user ...

  4. 最小生成树之Prime法

    关于最小生成树的概念,在前一篇文章中已经讲到,就不在赘述了.下面介绍Prime算法:         其基本思想为:从一个顶点出发,选择由该顶点出发的最小权值边,并将该边的另一个顶点包含进来,然后找出 ...

  5. sublime text 3 licence code

    Update:2016年3月9日09:14:12 可用 —– BEGIN LICENSE —–Michael BarnesSingle User LicenseEA7E-8213858A353C41 ...

  6. Java数据结构之树和二叉树

    从这里开始将要进行Java数据结构的相关讲解,Are you ready?Let's go~~ Java中的数据结构模型可以分为一下几部分: 1.线性结构 2.树形结构 3.图形或者网状结构 接下来的 ...

  7. C++ map注意事项

    1.在map中,由key查找value时,首先要判断map中是否包含key. 2.如果不检查,直接返回map[key],可能会出现意想不到的行为.如果map包含key,没有问题,如果map不包含key ...

  8. Codeforces Round #253 (Div. 1) A. Borya and Hanabi 暴力

    A. Borya and Hanabi Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/442/p ...

  9. C语言阶乘和求闰年

    #include<stdio.h> void main(){ int i,a,s=1; scanf("%d",&a); for(i=1;i<=a;i++) ...

  10. [AngularJS] Best Practise - Controller

    ControllerAs: Use thecontrollerAs syntax always as it aids in nested scoping and controller instance ...