码迷,mamicode.com
首页 > 其他好文 > 详细

managed_schema

时间:2016-05-27 14:32:03      阅读:128      评论:0      收藏:0      [点我收藏+]

标签:

Managed_schema是在使用solr建立core时的配置(core连接配置和索引库),solr根据它确定如何对文档建立索引到索引库中,每个core在建立前都需要设计好managed_schema。本文就managed_schema包含什么?如何设计managed_schema做说明。

如何设计文档索引

在solr和lucene中,每个文档可以解析成一个document,document有field集合组成,field的形式可以为多种,比如filed可以为作者,标题,内容等,field也可以为时间,长度等,document是一系列描述全文的field的集合。Lucene便是将docement进行建立索引的java库,solr为使用lucene实现的一个服务程序,可以说solr是lucene的一个封装。

当我们有一系列documents时,我们想要对每个docement中需要建立索引的部分进行自定义设定,比如当我们有一篇论文,它可以分成<题目,作者,时间,关键字,地址,内容>这样的field集合,其中作者和关键字这样的field可以包含多个值,作者一般包含学生名字和导师名字。现在,我们想要对该片论文建立全文索引,我们希望可以通过某个field中的值能够搜索到它,比如题目,或者某个关键字,但我不希望通过某些field比如地址搜索到该论文,所以想要建立索引的第一个问题为:你希望哪些field可以用于检索?当检索到该文档后,我们希望看见该文档中的题目,地址,内容等属性,那么想要建立索引的第二个问题为:你希望哪些属性可以展示给大家看?同时某个field可能包含多个值,比如关键字,所以建立索引的第三个问题为:我想指定某个field为多值。

当你想要建立索引时,首先考虑上面三个问题,在solr中,这些问题都可以按照你的设计运行,那就是对managed_schema进行配置。如以下内容:

<field name="id" type="string" indexed="true" stored="true" required="true" multiValued="false" />

本句中name指定field名;

type指定该field的内容的类型,需要与managed_schema后面的<fieldType name="string" class="solr.StrField" sortMissingLast="true" />进行对应;

indexed表明该属性是否进行检索,也就是是否需要建立索引,它的值域为{“true”,“false”}当值为true时则建立索引;

stored的值域也为{“true”,”false”},该选项确定该属性是否用于展示,当设置为”true”时,该field的值将写入索引库中,在检索时,该选项用于返回展示,如果为false则不存储该field并且不做展示。需要申明的是一个值可以同时检索和展示即indexed选项和stored选项可以同时为”true”。

Required值域为”true”时,每个上传到该索引库的文档都要求包含本field,如果需要建立的文档中并不包含该field则拒绝对其建立索引。

multiValued配置是否为多值选项,如果值为”true”则为多值,比如刚刚我们说的关键字。

managed_schema

标签:

原文地址:http://www.cnblogs.com/honeyqiong/p/5534274.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!