solrhom相当于存放数据的地方,里面一个个文件相当于数据库,每个数据库里面有两个文件夹,一个data,一个conf,conf下有一个schema.xml文件,配置域,相当于表的字段。

solr中内置了许多的字段类型

参照Solr中的字段类型field type

配置域

域相当于数据库的表字段,用户存放数据,因此用户根据业务需要去定义相关的Field(域),一般来说,每一种对应着一种数据,用户对同一种数据进行相同的操作。

域的常用属性:

  • name:指定域的名称
  • type:指定域的类型
  • indexed:是否索引
  • stored:是否存储
  • required:是否必须
  • multiValued:是否多值
一般域的配置:
<field name="item_goodsid" type="long" indexed="true" stored="true" />
  域为item_goodsid我们在使用spring data solr 的时候会用到这个域
type就是指定这个域存放的数据类型
indexed=true就是需要索引

复制域

复制域的作用在于将某一个Field中的数据复制到另一个域中

一般 不需要存储,需要索引,type为ik分词

<!-- 复制域 -->
<field name="item_keywords" type="text_ik" indexed="true" stored="false" multivalued="true"/>
<copyField source="item_title" dest="item_keywords"/>
<copyField source="item_category" dest="item_keywords"/>
<copyField source="item_seller" dest="item_keywords"/>
<copyField source="item_brand" dest="item_keywords"/>

动态域

动态域的配置:
<dynamicField name="attr_*" type="string" indexed="true" stored="true" multiValued="true"/>
参数:   source:原来域
          dest:指定域(即:将原来域复制到该指定域)
复制域常用于多域搜索,如:电商项目中搜索商品,既要在名字域中搜索也要在描述域中搜索,传统的做法需要手工写两次,而solr想发送一次请求,可到两个域中搜索,为此,引入了复制域的概念,将两个域的域名复制到一个text文本域中。

主键

<uniqueKey>id</uniqueKey>

文档的唯一标识,对应field里name="id"的那个字段, 必须填写这个field(除非该field被标记required="false"),否则solr建立索引报错。

常用的类型

String--->solr.StrField
boolean--->solr.BoolField
int--->solr.TrieIntField
float--->solr.TrieFloatField
long--->solr.TrieLongField
double--->solr.TrieDoubleField
text_general--->solr.TextField

自定义的域(参考)

<schema>

  。。。。。。

<!-- 基本字段 -->
<!-- 商品id -->
<field name="item_goodsid" type="long" indexed="true" stored="true"/>
<!-- 商品标题 -->
<field name="item_title" type="text_ik" indexed="true" stored="true"/>
<!-- 商品价格 -->
<field name="item_price" type="double" indexed="true" stored="true"/>
<!-- 商品图片 -->
<field name="item_image" type="string" indexed="false" stored="true" />
<!-- 商品种类 -->
<field name="item_category" type="string" indexed="true" stored="true" />
<!-- 商品卖家 -->
<field name="item_seller" type="text_ik" indexed="true" stored="true" />
<!-- 商品 品牌 -->
<field name="item_brand" type="string" indexed="true" stored="true" /> <!-- 复制域 标题+种类+卖家+品牌 -->
<field name="item_keywords" type="text_ik" indexed="true" stored="false" multiValued="true"/>
<copyField source="item_title" dest="item_keywords"/>
<copyField source="item_category" dest="item_keywords"/>
<copyField source="item_seller" dest="item_keywords"/>
<copyField source="item_brand" dest="item_keywords"/> <!-- 动态域 -->
<dynamicField name="item_spec_*" type="string" indexed="true" stored="true" />
</schema>
{
"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"
}

solr的域的更多相关文章

  1. 【转】solr+ajax智能拼音详解---solr跨域请求

    本文转自:http://blog.csdn.net/wangzhaodong001/article/details/8529090 最近刚做完solr的ajax智能拼音.总结一下. 前端:jQuery ...

  2. jquery 请求apache solr 跨域解决方案

    <script type="text/javascript" src="js/jquery-1.7.2.min.js"></script> ...

  3. solr学习之域的管理与中文分析器配置

    该文使用  Centos6.5 64 位    solr4.10.3   IK-Analyzer中文分析器 一.solr域 在solr中域的概念与lucene中域的概念相同,数据库的一条记录或者一个文 ...

  4. solr教程

    转载请注明出处:http://www.cnblogs.com/zhuxiaojie/p/5764680.html 本教程基于solr5.5 前言 至于为什么要用solr5.5,因为最新的6.10,没有 ...

  5. Solr单机部署和集群部署

    用到的相关jar包:http://pan.baidu.com/disk/home#list/path=%2Fsolr Solr目录结构 Solr 目录 Contrib :solr 为了增强自身的功能, ...

  6. 企业级搜索引擎Solr 第三章 索引数据(Indexing Data)[1]

    转载:http://quweiprotoss.wap.blog.163.com/ Push data to Solr or have Solr pull it 尽管一个应用通过HTTP方式与Solr通 ...

  7. 企业级搜索引擎Solr 第三章 索引数据(Indexing Data)[3]

    转载:http://quweiprotoss.wap.blog.163.com/ Solr Cell是一个针对Tika的简单适配器,它由一个SAX ContentHandler组成,ContentHa ...

  8. Solr配置步骤

    1. 配置步骤说明 (1)配置Solr服务器. (2)配置SolrHome.(Solr服务的主目录,磁盘) (3)在Solr服务器中加载SolrHome. (4)java程序访问Solr服务器,实现全 ...

  9. Solr 03 - Solr的模式设计与优化 - 最详细的schema.xml模式文件解读

    目录 1 关于schema.xml文件 2 解读schema.xml文件 2.1 field - 配置域 2.2 fieldType - 配置域类型 2.3 copyField - 配置复制域 2.4 ...

随机推荐

  1. mysql解决select * from 表名 (where + 约束条件为空)

    mysql解决select * from 表名 (where + 约束条件为空),示例如下: SELECT * from tableName WHERE name is NULL; 从 tableNa ...

  2. Bootstrap -- 下拉菜单、输入框组、导航菜单

    Bootstrap -- 下拉菜单.输入框组.导航菜单 1. 下拉菜单 可以使用带有各种大小按钮的下拉菜单:.btn-lg..btn-sm 或 .btn-xs. 实现下拉菜单: <!DOCTYP ...

  3. SQLServer之修改PRIMARY KEY

    使用SSMS数据库管理工具修改PRIMARY KEY 1.连接数据库,选择数据表->右键点击->选择设计(或者展开键,选择要修改的键,右键点击,选择修改,后面步骤相同). 2.选择要修改的 ...

  4. docker 基础

    概述 起源 2013 年由 DotCloud 公司开源出来的容器管理工具 DotCloud 公司是一家 PAAS 服务提供商,从 docker 的出身也可以看出它的主要功能和方向 技术原理 开始时是基 ...

  5. C++面向对象程序设计之类和对象的特性

    类和对象的属性 注意:本文为书籍摘要版,适合有一定程序基础的人阅读. 2.1 面向对象程序设计方法概述 2.1.1 什么是面向对象的程序设计 1.对象 客观世界中的任何一个事物都可以看成一个对象. 如 ...

  6. Python基础之协程

    阅读目录 一 引子 二 协程介绍 三 Greenlet模块 四 Gevent模块 引子 之前我们学习了线程.进程的概念,了解了在操作系统中 进程是资源分配的最小单位,线程是CPU调度的最小单位. 按道 ...

  7. Python 函数初识 (1)

    一.今日主要内容 认识函数 函数:对功能或者动作的封装(定义) 语法: def 函数名字(形参) 函数体 函数的调用格式:函数名(实参) 函数的返回值 关键字:return 终止函数的运行 1.函数内 ...

  8. 0109 ubuntu nginx ssl

    1. sudo apt-get install openssl libssl-dev # ./configure --with-http_stub_status_module --with-http_ ...

  9. HBase Client JAVA API

    旧 的 HBase 接口逻辑与传统 JDBC 方式很不相同,新的接口与传统 JDBC 的逻辑更加相像,具有更加清晰的 Connection 管理方式. 同时,在旧的接口中,客户端何时将 Put 写到服 ...

  10. 文本分类实战(十)—— BERT 预训练模型

    1 大纲概述 文本分类这个系列将会有十篇左右,包括基于word2vec预训练的文本分类,与及基于最新的预训练模型(ELMo,BERT等)的文本分类.总共有以下系列: word2vec预训练词向量 te ...