solr 字段配置,和数据库数据索引配置

  配置solr字段、

  schema.xml 文件里配置

  先讲解一下,里面的一些字段

  1、 <types> ... </types> 表示类型,数据类型

<fieldType name="string" class="solr.StrField" sortMissingLast="true" omitNorms="true"/> 
<fieldType name="boolean" class="solr.BoolField" sortMissingLast="true" omitNorms="true"/>
<fieldtype name="binary" class="solr.BinaryField"/>
<fieldType name="int" class="solr.TrieIntField" precisionStep="0" omitNorms="true" positionIncrementGap="0"/>
<fieldType name="float" class="solr.TrieFloatField" precisionStep="0" omitNorms="true" positionIncrementGap="0"/>
<fieldType name="long" class="solr.TrieLongField" precisionStep="0" omitNorms="true" positionIncrementGap="0"/>
<fieldType name="double" class="solr.TrieDoubleField" precisionStep="0" omitNorms="true" positionIncrementGap="0"/>

  不难理解上面就是配置定义solr 数据类型、上面都是solr里面的类型,那么我们也可以配置自已的数据类型,

  比如:我们要用到中文分词 的时候,这里配一下IKanalyzer 分词 、并配置它的索引和分词。

<fieldType name="text_cn" class="solr.TextField" positionIncrementGap="100"> 
<!--<analyzer class="org.wltea.analyzer.lucene.IKAnalyzer"/> -->
<analyzer type="index"> <tokenizer class="org.wltea.analyzer.solr.IKTokenizerFactory" isMaxWordLength="false"/>
<filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" enablePositionIncrements="true" />
<filter class="solr.StandardFilterFactory"/> <filter class="solr.RemoveDuplicatesTokenFilterFactory"/>
</analyzer> <analyzer type="query"> <tokenizer class="org.wltea.analyzer.solr.IKTokenizerFactory" isMaxWordLength="true"/>
<filter class="solr.StopFilterFactory" ignoreCase="false" words="stopwords.txt" enablePositionIncrements="true" />
<filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true"/>
<filter class="solr.StandardFilterFactory"/> <filter class="solr.RemoveDuplicatesTokenFilterFactory"/> </analyzer>
</fieldType>

  小解释一下field 里面的一些属性:

  name: 字段类型名 class: java类名 indexed: 缺省true。

说明这个数据应被搜索和排序,如果数据没有indexed,则stored应是true。

stored: 缺省true。说明这个字段被包含在搜索结果中是合适的。如果数据没有stored,则indexed应是true。

sortMissingLast: 指没有该指定字段数据的document排在有该指定字段数据的document的后面

sortMissingFirst: 指没有该指定字段数据的document排在有该指定字段数据的document的前面

omitNorms: 字段的长度不影响得分和在索引时不做boost时,设置它为true。一般文本字段不设置为true。

termVectors: 如果字段被用来做more like this 和highlight的特性时应设置为true。

compressed: 字段是压缩的。这可能导致索引和搜索变慢,但会减少存储空间,只有StrField和TextField是可以压缩,这通常适合字段的长度超过200个字符。

multiValued: 字段多于一个值的时候,可设置为true。

positionIncrementGap: 和multiValued 一起使用,设置多个值之间的虚拟空白的数量

  2、<fields> ... </fields> 配的是文档字段

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

<field name="sku" type="text_en_splitting_tight" indexed="true" stored="true" omitNorms="true"/>

<field name="name" type="text_general" indexed="true" stored="true"/> 

<field name="alphaNameSort" type="alphaOnlySort" indexed="true" stored="false"/>

<field name="manu" type="text_general" indexed="true" stored="true" omitNorms="true"/>

name:字段的名字。 
type:字段的类型。 
default:一般用来记录索引的时间。 
required:设置为true时,当字段没有值,则solr会索引文档失败。

  multiValued:是否多值

  termVectors

  termPositions

  termOffsets

  动态字段:(适合用于预留添加字段)

 

<dynamicField name="*_i" type="int" indexed="true" stored="true"/> 
<dynamicField name="*_s" type="string" indexed="true" stored="true"/>
<dynamicField name="*_l" type="long" indexed="true" stored="true"/>
<dynamicField name="*_t" type="text_general" indexed="true" stored="true"/>

  文档的动态字段、

  添加文档时,字段以_i 结尾的将将被solr收录 、、solr支持通配符 *

  唯一key 必须为string

  <uniqueKey>id</uniqueKey>

  默认搜索字段

  <defaultSearchField>text</defaultSearchField>

  SolrQueryParser 默认处理

  <solrQueryParser defaultOperator="OR"/>

  copyField

<copyField source="cat" dest="text"/>
<copyField source="name" dest="text"/>
<copyField source="manu" dest="text"/>
<copyField source="features" dest="text"/>
<copyField source="includes" dest="text"/>
<copyField source="manu" dest="manu_exact"/>

  字段cat 是文章的标题,字段text 是文章的摘要,

  字段ta是文章标题和摘要的联合。添加索引文档时,只需要传入cat 和text 字段的内容,solr会自动索引ta字段。

solr scheme配置简介的更多相关文章

  1. SpringBoot常用配置简介

    SpringBoot常用配置简介 1. SpringBoot中几个常用的配置的简单介绍 一个简单的Spring.factories # Bootstrap components org.springf ...

  2. solr多核配置

    假设已经配置好了一个单core的solr服务器. solr.xml配置文件 单核和多核主要在solr.xml配置不同.在solr/example中已经有一个名称为multicore的文件夹里面给我们配 ...

  3. Configuration所有配置简介

    // 内存缓存的设置选项 (最大图片宽度,最大图片高度) 默认当前屏幕分辨率                // .memoryCacheExtraOptions(480, 800) // 硬盘缓存的 ...

  4. Django中的路由配置简介

    Django中的路由配置简介 路由配置(URLconf)就是Django所支撑网站的目录.其实,我们利用路由交换中的"寻址"的概念去理解Django的路由控制会简单很多,它的本质就 ...

  5. BugPhobia沟通篇章:Solr模式配置与数据导入调研

    0x01 :Scrum Meeting特别说明 特别说明,考虑到编译原理课程考核的时间安排,每天开发时间急剧缩短以至于难以维系正常的Scrum Meeting,因此,将2015/12/13 00:00 ...

  6. 转: ZigBee/Z-Stack CC2530实现低功耗运行的配置简介

    转: ZigBee/Z-Stack CC2530实现低功耗运行的配置简介http://bbs.elecfans.com/jishu_914377_1_1.html(出处: 中国电子技术论坛) 设备支持 ...

  7. 在Solr中配置中文分词IKAnalyzer

    李克华 云计算高级群: 292870151 交流:Hadoop.NoSQL.分布式.lucene.solr.nutch 在Solr中配置中文分词IKAnalyzer 1.在配置文件schema.xml ...

  8. solr 日志配置

    配置Solr日志记录 临时记录设置 您可以使用Admin Web界面来控制Solr中的日志输出量.选择LOGGING链接.请注意,此页面只允许您更改正在运行的系统中的设置,并不会保存在下一次​​运行中 ...

  9. Elasticsearch常见错误与配置简介

    一.常见错误 1.1 root用户启动elasticsearch报错 Elasticsearch为了安全考虑,不让使用root启动,解决方法新建一个用户,用此用户进行相关的操作.如果你用root启动, ...

随机推荐

  1. sed的基础用法简介

    sed 最近学习了一些sed的相关知识,初步接触sed以后给我的感受主要有两点.首先是sed强大的功能,学了以后发现之前写的脚本利用sed以后会简化很多啊,具体的有些利用sed编辑shell脚本的思路 ...

  2. 洛谷 - P3164 - 和谐矩阵 - 高斯约旦消元法

    为什么可以跑n立方,我也不知道,反正就是可以. 模2意义的,据说每一行可以存一个bitset,会比用bool更快(快32倍?). 本题告诉我们一个道理: 高斯消元之后,每个变量的含义不变(虽然交换了两 ...

  3. HDU3038【种类并查集】

    题意: 给出m组区间[a,b],以及其区间的和,问有矛盾的有几组: 思路: 种类并查集. 主要是几个关系:同类元素的关系,父亲与儿子的关系,不同类元素的关系: 我们可以类似看作一个前缀和,sum[x] ...

  4. 小程序地区时间自定义选择器 picker

    进入微信公众平台小程序开发文档搜索 picker 点进去后下滑,点击在开发者工具中预览即可

  5. Spring Boot后端+Vue前端+微信小程序,完整的开源解决方案!

    项目简介 一个小商场系统,包括: 后端:Spring Boot 管理员前端:Vue 用户前端:微信小程序 功能介绍 1.小商城 首页 专题列表.专题详情 分类列表.分类详情 品牌列表.品牌详情 新品首 ...

  6. A - Beautiful numbers

    #include <iostream> #include <algorithm> #include <cstring> #include <cstdio> ...

  7. Flask (六) 项目(淘票票)

    FlaskDay06 Flask项目-淘票票 RESTful REST一种软件架构风格.设计风格.而不是标准,只是提供了一组设计原则和约束条件.它主要用户客户端和服务器交互类的软件. ​ 在前后端分离 ...

  8. [软件工程基础]2017.11.01 第五次 Scrum 会议

    具体事项 燃尽图 每人工作内容 成员 已完成的工作 计划完成的工作 工作中遇到的困难 游心 #8 掌握 Laravel 框架 #10 搭建可用的开发测试环境:#9 阅读分析 PhyLab 后端代码与文 ...

  9. ES6字符串操作讲解(详细),字符串编码表,代码单元,码点的详细介绍。

    以前用到字符串的方法时候,并不会深刻的去思考其中的原理,所以在es6新增的这些方法里就有点蒙圈了,于是想要搞清楚为什么会新增这些方法,以及如何使用这些方法. 在博客园上看见一篇大神SamWeb的总结, ...

  10. jQuery height() innerHeight() outerHight() width() innerWidth() outerWidth()源码解读

    在第二层each,传入的对象以height举例是这样的,{padding:innerHeight,content:height,"":outerHeight} 对它遍历调用func ...