本人使用solr5.5.3 此文章主要介绍单solr的一些基本数据操作由于本人也是刚接触solr,可能又错误的地方,在阅读过程中如果有错误欢迎大家指出,我一定积极改正。
solr的搭建过程请参见本人另一篇文章
添加core
core是solr的操作基础。在操作数据之前必须要有core
相关core的介绍大家可参见这里。我英语不是很好就不在这里献丑了 T_T
启动solr后直接点击Core Admin-> Add Core -> Add Core出现如下图错误
可以看出没有solrconfig.xml文件
- 在solrhome文件夹下 创建你想要叫的core名字的文件夹
- 将solrhome->configsets->basic_configs下的conf文件夹复制到第一步的文件夹下
- 这时再重复第一步
- 点击Add Core 完成core 的添加
配置solrconfig.xml
将solrhome->core->conf->solrconfig.xml下的手动编辑配置文件选项打开并把通过api配置的代码注释。如下图:
配置Schema.xml##
首先将solrhome->core->conf->下的managed-schema文件复制一份并更名为schema.xml
- fieldType
是一些常见的可重用定义,定义了 Solr如何处理 Field。也就是添加到索引中的xml文件属性中的类型,如int、text、date等.
属性 | 描述 |
---|---|
name | 名称 |
class | 和其他属性决定了这个fieldType的实际行为。 |
sortMissingLast | 设置成true没有该field的数据排在有该field的数据之后,而不管请求时的排序规则, 默认是设置成false。 |
sortMissingFirst | 跟上面倒过来呗。 默认是设置成false |
analyzer | 字段类型指定的分词器 |
type | 当前分词用用于的操作.index代表生成索引时使用的分词器query代码在查询时使用的分词器 |
tokenizer | 分词器类 |
filter | 分词后应用的过滤器 过滤器调用顺序和配置相同. |
- field
是你添加到索引文件中出现的属性名称,而声明类型就需要用到上面的fieldType
属性 | 描述 |
---|---|
name | 标识名称。 |
type | 定义的类型。 |
indexed | 如果此字段应被索引(可搜索或可排序),则为true |
stored | 如果此字段应可检索,则为true |
docValues | 如果此字段应包含doc值,则为true。 Doc值为用于分面,分组,排序和函数查询。虽然不是required,doc值会使索引加载more NRT-friendly and more memory-efficient。 |
multiValued | 字段多于一个值的时候,可设置为true。 |
omitNorms | 设置 omitNorms=false 意味着忽略掉 field 的 norms,相当于禁用掉了 length normalization 和 索引时 boosting; |
termVectors | 当设置true,会存储 term vector。当使用MoreLikeThis,用来作为相似词的field应该存储起来。 |
termPositions | 将位置信息与术语向量一起存储。这将增加存储成本。 |
termOffsets | 存储 term vector 的偏移量,会消耗存储开销。 |
required | 此字段为必填字段。如果值不存在它会抛出一个错误 |
default | 用来指定没有特殊值 |