1.4.6 其他Schema元素

  这里描述了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

上一篇:let防止变量声明提前


下一篇:SSI指令使用详解(转)