solrhom相当于存放数据的地方,里面一个个文件相当于数据库,每个数据库里面有两个文件夹,一个data,一个conf,conf下有一个schema.xml文件,配置域,相当于表的字段。
solr中内置了许多的字段类型
配置域
域相当于数据库的表字段,用户存放数据,因此用户根据业务需要去定义相关的Field(域),一般来说,每一种对应着一种数据,用户对同一种数据进行相同的操作。
域的常用属性:
name:指定域的名称
type:指定域的类型
indexed:是否索引
stored:是否存储
required:是否必须
multiValued:是否多值
一般域的配置:
域为item_goodsid我们在使用spring data solr 的时候会用到这个域
type就是指定这个域存放的数据类型
indexed=true就是需要索引
复制域
复制域的作用在于将某一个Field中的数据复制到另一个域中
一般 不需要存储,需要索引,type为ik分词
动态域
动态域的配置:
参数: source:原来域
dest:指定域(即:将原来域复制到该指定域)
复制域常用于多域搜索,如:电商项目中搜索商品,既要在名字域中搜索也要在描述域中搜索,传统的做法需要手工写两次,而solr想发送一次请求,可到两个域中搜索,为此,引入了复制域的概念,将两个域的域名复制到一个text文本域中。
主键
id
文档的唯一标识,对应field里name="id"的那个字段, 必须填写这个field(除非该field被标记required="false"),否则solr建立索引报错。
常用的类型
String--->solr.StrFieldboolean--->solr.BoolFieldint--->solr.TrieIntFieldfloat--->solr.TrieFloatFieldlong--->solr.TrieLongFielddouble--->solr.TrieDoubleField
text_general--->solr.TextField
自定义的域(参考)
。。。。。。
{"id": "1","item_goodsid": 1111,"item_title": "128G的华为p30","item_price": 3888.8,"item_image": "http://1.jpg","item_category": "手机","item_seller": "张三店铺","item_brand": "华为","item_spec_size": "3.5mm"}