putting the pieces together

  在最高的级别,schema.xml结构如下,

<schema>
<types>
<fields>
<uniqueKey>
<defaultSearchField>
<solrQueryParser defaultOperator>
<copyField>
</schema>

  明显的,这最重要的内容是在types和fields中,也就是字段类型和实际字段定义存在的地方.这些字段也可以通过copyFields补充,夹在字段fields和复制字段copyField之间的是唯一主见uniqueKey,默认搜索字段和默认查询操作.

  选择合适的数据类型

  用于一般的数字需要,使用可排序的字段类型,SortableIntField,SortableLongField,SortableFloatField和SortableDoubleField.这些字段类型将会按照数字排序,而不是按照字典顺序排序.

  如果用户希望在数字类型上做频繁的范围查询,考虑使用TrieField类型.它以增加索引大小为成本的基础之上提供了更快速度的范围查询.

  使用Text

  通过文本搜索提供给你的用户最可能的结果集,这样妥善的处理文本的方式会使你得用户很高兴.

  一种技术就是使用text字段作为关键字搜索的捕捉字段.大多数用户的搜索并不是很复杂,基本上都是一个简单的关键词搜索,你可以使用copyField来获取多种字段,然后将它们全部导入到一个简单的text字段用于关键词搜索.这个例子中的schema代表了一个商店,copyField字段用于存储cat,name,manu,features和includes到一个单独的字段text.另外,将ID复制到text中以防用户想要通过商品的id号来搜索.

  另一种技术就是使用copyFiled,以不同的方式来使用同一个字段.假如你有一个字段author,表示作者的列表.像这样:

   Schildt, Herbert; Wolpert, Lewis; Davies, P.

  通过作者来搜索,你需要标记(tokenize)这个字段,转换小写,去掉标点符号:

    schildt / herbert / wolpert / lewis / davies / p

  对于排序,只需要为标记(untokenized)字段,转换小些,去掉标点符号.

   schildt herbert wolpert lewis davies p

  最后,对于分面(facet),只需要主要作者,使用StringField.

   Schildt, Herbert

1.4.8 拼凑在一起(putting the pieces together)的更多相关文章

  1. 1.1 Introduction中 Putting the Pieces Together官网剖析(博主推荐)

    不多说,直接上干货! 一切来源于官网 http://kafka.apache.org/documentation/ Putting the Pieces Together 拼在一起 This comb ...

  2. 1.4 Documents,Fields和Schema设计--目录

    1.4.1.Documents,Fields和Schema概述 1.4.2 solr字段类型 1.4.2 solr字段类型--(1.4.2.1)字段类型定义和字段类型属性 1.4.2 solr字段类型 ...

  3. 我看的公开课系列--《TED:对无知的追求》 by stuart firestein

    http://open.sina.com.cn/course/id_1047/ What scientists do is not just collect data and collect fact ...

  4. IP, TCP, and HTTP--reference

    IP, TCP, and HTTP Issue #10 Syncing Data, March 2014 By Daniel Eggert When an app communicates with ...

  5. 3 kafka介绍

     本博文的主要内容有 .kafka的官网介绍 http://kafka.apache.org/ 来,用官网上的教程,快速入门. http://kafka.apache.org/documentatio ...

  6. Kafka官方文档翻译——简介

    简介 Kafka擅长于做什么? 它被用于两大类应用: 在应用间构建实时的数据流通道 构建传输或处理数据流的实时流式应用 几个概念: Kafka以集群模式运行在1或多台服务器上 Kafka以topics ...

  7. 详谈kafka的深入浅出

    第一:kafka的介绍,kafka官网:http://kafka.apache.org/ http://www.jasongj.com/2015/03/10/KafkaColumn1/ kafka的简 ...

  8. Kafka介绍 (官方文档翻译)

    摘要:Kafka是由Apache软件基金会开发的一个开源流处理平台,由Scala和Java编写.Kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者规模的网站中的所有动作流数据. 这种动 ...

  9. [转帖]IOC Security: Indicators of Attack vs. Indicators of Compromise

    IOC Security: Indicators of Attack vs. Indicators of Compromise https://www.crowdstrike.com/blog/ind ...

随机推荐

  1. SurfaceView 和 TextureView

    1.区别 The followings are two limitations of SurfaceView: You can not be animated, transformed and sca ...

  2. hibernate search例子

    [TOC] 1. 概念介绍 1.1. Hibernate Search Hibernate Search是Hibernate的子项目,把数据库全文检索能力引入到项目中,并通过"透明" ...

  3. 在PhpStorm9中与Pi的xdebug进行调试

    PI的配置参考 http://www.cnblogs.com/yondy/archive/2013/05/01/3052687.html 在PhpStorm 9.0中参考下面的截图进行配置 配置完成以 ...

  4. flask中的request对象方法

    'accept_charsets','accept_encodings','accept_languages','accept_mimetypes','access_route','applicati ...

  5. ruby中实例变量、类变量等等的区别和联系

    ruby的变量有局部变量,全局变量,实例变量,类变量,常量. 1.局部变量 局部变量以一个小写字母开头或下划线开头 局部变量有局部作用域限制(比如一个block内),它的作用域起始于声明处,结束于该声 ...

  6. Linux 信号

    每个进程都需要有个信号处理函数,以捕捉异常信号. 我们在写代码时,有时会有内存非法使用,这种问题一般比较难定位.但是如果有信号处理函数,就可以在捕捉到SEGV信号后打印出详细信息以定位问题. 下面写一 ...

  7. android 自定义控件(初篇)

    android 自定义控件 在写UI当中很多时候会用到自定义的控件,其实自定义控件就像是定义一个类进行调用就OK了.有些相关的感念可以查看API 下面就用个简单的例子来说明自定义控件: public ...

  8. C:内存分配、内存中五大区

     1.内存的划分  (从高到低依次是: 栈区 . 堆区 .全局静态区 . 常量区 . 代码区 )栈区是系统自动回收,堆区是我们手动回收  2. 栈区   在函数内部定义的局部变量和数组.都存放在栈区, ...

  9. libev笔记

    libev是一个开源库,实现了一个reactor模式事件驱动任务调度库.代码非常精简,包含所有实现的.c文件只有不到5000行. 支持的事件类型: ev_io ev_timer ev_periodic ...

  10. DataTable添加行和列

    tablenullobjectdatasetc#c 手动插入一行数据 DataSet ds = tTalent.GetAllInfo();         DataRow dr = ds.Tables ...