0.亲,低级错误知多少

""    写成了“”
<br>
true    写成了 ture
<br>
false写成了fasel
<br>
String 写成了 string
<br>
userId 写成了userid
<br>
user_id 写成了 user_Id
<br>
userId 写成了 user_Id

1.

这个uniquekey 作用:当add doc的时候,配置了uniqueKey,后面的doc中uniqueKey相同的会覆盖之前的doc,
如果没有配置,那么将不会覆盖。update的时候,依据uniqueryKey信息的话,
所以有update还是建议配上uniqueKey,一来比较完整配置信息,二来数据排查也方便。
对应id这个域,必须 stored=true、indexed=true,类型建议使用long或者int,而不是string
如果有特殊场景需要按id排序的,就的使用TriedLongField,否则排序时候会按文本序排序。

2.
<defaultSearchField>title</defaultSearchField><niqueKey>id</uniqueKey>u

故名思议就是默认查询的时候,查什么域。这句的用法体现在:
queryStr= content:abc 123,  等价 queryStr= content:abc title:123
queryStr= 123 等价 queryStr= title:123
也就是说等查询的时候,没有指定查那个域,默认就对应defaultSearchField了。
既然是defaultSearchField,那么这个域indexed=true 是必须的
注意区分 content:abc 123 与content:"abc 123" 以及 content:(abc 123)

3.所有intsinttintlongslongtlongfloatsfloattfloatdouble

sdoubletdouble

都不支持分词,也无需分词。没有sshort tshort,只有short。因为这些基本类型就一个值,无需什么分词。
对与int long fload Field,不应该出现positionincrmentGap=100
对与tint tlong tdoube 才有 pricisionStep、positionIncrementGap、sortMissingLast="true"属性。

4.配置分词

所有TextField才有机会分词所有TextField才有机会执行facet所有TextField配置的omitTermFreqAndPositions="true"才会起效果,排序中频率位置信息没了

5.omitNorms=”true”这个参数影响域的得分,去掉之后,使得长短域相同词得分一致。按照香浓原理,

某个词出现在更长的文本中,或者出现次数越多,信息值更低。对应如果omitNorms=false,那么下面淘宝出现doc1淘宝杭州出现doc2淘宝杭州网络有限公司,命中淘宝的时候,doc1得分高于doc2注意:只有有一个域的omitNorms="false",等价所有域都保留了omitNorms这个位置,尽管omitNorms内容是空,所有,omitNorms在所有域都omitNorms=“true”的时候,才对索引有帮助。

6.required=”true”

这个属性是说,一旦scham中该域启用required=“true”,那么建索引的时候,这个域时不能为空的,这个doc认为不完整。当前走dump中心,会对null的赋值为"",也就不会出现没有值的情况。但是schema中还是应该突出下,如果逻辑上有需要确保某些字段必须有

7.multiValued=”true”

这个配置不是说某个域中term是单一or多个的意义。即使mulitValued=false,一个text域同时可以是很长的一段文本,也就是很多term的情况。multiValued="true"真正含义是:在传入doc建索引的时候,当一个域是mulitValued="true",那么可以向该域继续add内容。等价在一个doc中,相同域名的key:value可以有多个。通常情况下,使用map,key也就唯一了,不会出现多个相同key,不同value的情况。另外,配置了mulitValued="true",在命中返回文档的时候,返回的是list,而不是单个对象。在终搜目前的建索引集中下,这个multiValued配与不配已经没有任何作用影响dump过程,只是在命中返回的时候返回的是listor单个对象。深入提示,multiValued="true"在建索引的时候,实际上开辟了一个新的域,允许域名相同的域多次出现。查询的时候会查询所有域名相同的域,这样导致检索性能会有一定影响,特别是域名膨胀之后,影响非常明显。

8.特殊分词

对应提出#;:等分词,其实建议统一转化为空格分词,这是系统原生的分词,并且是基于编译器层的分词,性能更好。没有必要为了一个#,重新定制一份代码,部署起来。

9.排序、区间、一般查询

排序的应该是数字类型,建议使用trie类型,老的sortable也是支持的区间的也应该是数字类型的,建议使用tried类型一般查询的多个数字组合的话,建议将数字字符化,然后空格分开,目前不支持数字类型的数组

10.datetdate等类型

在配置datatdate等类型的时候,需要注意时间格式。另外,不推荐直接保存,而是保存差值后的int类型等。由于data精度控制不同,将使得所用data域的term成线性增长,这是相当恐怕的事情。这个长尾将消耗非常大的内存、空间资源。在索引中term线性的增长是相当恐怖的事情。对长尾的处理目前还没有特殊优化。通用在索引中term聚集性的增长也是相当恐怖的事情,对长链处理目前也没有特殊优化。

11.高级活

自我校验schema质量。当schema配置完毕了,可以采取terminatorquickstart测试一下,然后luke工具查看下索引结构。这样可能会发现一些问题。可能很多地方的结构可以尝试优化。

转载于:https://blog.51cto.com/aliapp/1325875

Solr schema编写指导相关推荐

  1. Solr Schema.xml分析

    2019独角兽企业重金招聘Python工程师标准>>> Solr Schema.xml分析 一.字段配置(schema) schema.xml位于solr/conf/目录下,类似于数 ...

  2. 编写 matlab_MATLAB的SFunction编写指导

    欢迎加入技术交流QQ群(2000人):电力电子技术与新能源 905723370 高可靠新能源行业顶尖自媒体 在这里有电力电子.新能源干货.行业发展趋势分析.最新产品介绍.众多技术达人与您分享经验,欢迎 ...

  3. Solr Schema.xml示例

    本文英文版地址:https://examples.javacodegeeks.com/enterprise-java/apache-solr/solr-schema-xml-example/ 作者姓名 ...

  4. Apache Solr schema.xml及solrconfig.xml文件中文注解

    一.字段配置(schema) schema.xml位于solr/conf/目录下,类似于数据表配置文件, 定义了加入索引的数据的数据类型,主要包括type.fields和其他的一些缺省设置. 1.先来 ...

  5. I2C driver编写指导二:编写i2c client driver指南

    原文地址::http://blog.csdn.net/guoshaobei/archive/2010/06/08/5656001.aspx 译者:郭少悲 日期:2010/06/08 源文:linux- ...

  6. DJYOS驱动开发系列三:基于DJYOS的SPI驱动编写指导手册

    1.贡献者列表 深圳市秦简计算机系统有限公司DJYOS驱动开发团队. 2.概述 DJYOS的DjyBus总线模型为IIC.SPI之类的器件提供统一的访问接口,SPIBUS模块是DjyBus模块的一个子 ...

  7. solr之schema.xml中文翻译

    译者:张春玲 原文地址:http://blog.csdn.net/zcl_love_wx/article/details/51907488 翻译中----- 声明:faceting我也一直不清楚在so ...

  8. Solr 配置文件之schema.xml

    schema.xml这个配置文件的根本目的是为了通过配置告诉Solr怎样建立索引. solr的数据结构例如以下: document:一个文档.一条记录 field:域.属性 solr通过搜索某个或某些 ...

  9. 搜索引擎之---Apache solr的实现

    Solr 是一种可供企业使用的.基于 Lucene 的搜索服务器,它支持层面搜索.命中醒目显示和多种输出格式.在这篇分两部分的文章中,Lucene Java™ 的提交人 Grant Ingersoll ...

  10. Solr与MongoDB集成,实时增量索引[转]

    http://www.123905.com/ 一. 概述 大量的数据存储在MongoDB上,需要快速搜索出目标内容,于是搭建Solr服务. 另外一点,用Solr索引数据后,可以把数据用在不同的项目当中 ...

最新文章

  1. 说说软件开发这个职业
  2. OpenCart之在线客服(Google Talk)模块教程
  3. the resource is not on the build path of a java project错误
  4. 保存一波集合框架的介绍
  5. 深入解读无服务器架构下的数据库
  6. ABAP--关于ABAP流程处理的一些命令的说明(stop,exit,return,check,reject)
  7. 解决用户控件循环引用的笨办法
  8. Set与WeakSet
  9. java实现文件对比
  10. php study pro,phpStudy Pro官方下载|
  11. Eclipse 启动提示java虚拟机启动失败,“Failed to create the Java Virtual Machine”-------解决方法
  12. 第五周:Raptor:三色球问题
  13. drive翻译成中文_drive是什么意思_drive翻译_读音_用法_翻译
  14. 0CTF piapiapia
  15. 由和与加数进行凑数的遍历算法
  16. 90+目标跟踪算法九大benchmark!基于判别滤波器和孪生网络的视觉目标跟踪:综述与展望...
  17. 选择一个可靠知名的域名管理服务提供商
  18. SyncAdapter同步机制
  19. Android adb指令实现应用双开功能
  20. IBM3650M4实体机安装ESXI7.0

热门文章

  1. spring异常:Could not resolve placeholder
  2. 在C#中使用消息队列RabbitMQ
  3. RedHat(CentOS 5)下安装FileZilla Client注意事项
  4. 微信公众账号开发入门准备
  5. SQL Server 2005的Resource数据库
  6. [转帖] 职场学习=贼学技术
  7. 蓝桥杯 振兴中华——2013年省赛C/C++ A组真题3
  8. 《MySQL必知必会》学习笔记——第三章(了解数据库和表)
  9. [python]有关Python的import...和from...import...的区别
  10. Spring AOP 讲解(Pointcut、Before、Around、AfterReturning、After)