1.4.2 solr字段类型

  (1.4.2.1) 字段类型定义和字段类型属性.

  (1.4.2.2) solr附带的字段类型

  (1.4.2.3) 使用货币和汇率

  (1.4.2.4) 使用Dates(日期)

  (1.4.2.5) 使用枚举字段

  (1.4.2.6) 使用外部文件和程序

  (1.4.2.7) 字段属性使用案例

使用外部文件和程序

使用ExternalFileField类型

  在solr索引的外部,在一个文件里指定一个字段的值,ExternalFileField使这种情况成为了可能.对于这样的字段,文件中包含了字段和字段值的映射.另一种想到的方法就是,在solr索引的时候替换掉指定的文档中的字段,solr从外部文件中查找值.

  注意:ExternalFileField是不可搜的,它们可以用作函数查询或者显示.

  ExternalFileField是很方便的,如果你想要更新许多文档(document)中指定的字段比更新剩下的文档更频繁.例如,假设你已经实现了基于的意见数量的文档排名,你需要每天或者每小时的更新这些排名,然而这文档剩下的内容可能会很少的更新变动,如果没有ExternalFileField,你需要更新每一个文档的排名;使用ExternalFileField是非常有效的,因为所有文档的特殊字段的值都是存储在外部文件中的,能够随心所欲的经常的更新.

  在schema.xml中定义如下: 

<fieldType name="entryRankFile" keyField="pkId" defVal="0"
stored="false" indexed="false" class="solr.ExternalFileField" valType="pfloat" />

   keyField属性定义了外部文件中使用的key值,它往往是这个索引的唯一的key.但是当keyField可以用来标记索引中的文档的话,就没有必要了.valType指定了值的类型. ,  or  . 有效的值可以是pfloat, float, tfloat.这个属性可以忽略.

外部文件格式

  这个文件位于solr索引目录,默认为 . $SOLR_HOME/data.文件名应该是external_fieldname或者external_ fieldname.*.对于上面的例子,文件应该被命名为external_entryRankFile或者external_entryRankFile.txt.

  提示:如果所有文件使用.*(如.txt)显示,这最后的(按名称排序后)将被使用,以前的版本将被删除.

  文件中,等号左边为映射的key字段,等号右边是字段值.

doc33=1.414
doc34=3.14159
doc40=42

  这个列表中的key并不需要是唯一的,这个文件也不需要排序,但是如果排序之后,solr将会更快的执行查询.

重新加载一个外部文件

  自solr4.1起,可能会定义一个事件监听,在搜索加载或者一个新的搜索开始时,重新加载外部文件,参考 Query-Related Listeners查阅更多信息,solrconfig.xml定义例子如下:

<listener event="newSearcher"  class="org.apache.solr.schema.ExternalFileFieldReloader" />
<listener event="firstSearcher" class="org.apache.solr.schema.ExternalFileFieldReloader" />

预先分析字段类型

  PreAnalyzedField提供了一种方式,发送到序列化标记(token)字节流,可选择的单独存储字段的值,使字段的信息存储和索引不需要额外的文本处理.在使用Lucene的TokenStream提供的全部丰富的属性时,如果用户想要提交这样的一些字段内容--这些内容已经被已经存在的外部文本处理管道处理(如这些文本内容已经嵌入的tokenized,annotated,stemmed,synonyms等).使用这个字段类型是很有用的.

  序列化的格式使用可插拔的 PreAnalyzedParser接口的实现类.有两个外部实现:

  JsonPreAnalyzedParser:就像它的名称所表示的那样,它解析使用JSON格式来表示字段内容的数据.如果这个字段类型不配置其他的解析器,这个就是默认使用的的解析器.

  SimplePreAnalyzedParser:使用一个简单的严格纯文本格式,在一些条件下比JSON更容易创建.

只有一个参数parserImpl,参数值必须是一个实现PreAnalyzedParser接口的全类名.默认的参数值时org.apche.solr.schema.JsonPreAnalyzedParser

1.4.2 solr字段类型--(1.4.2.6)使用外部文件和程序的更多相关文章

  1. 1.4.2 solr字段类型--(1.4.2.7)字段属性使用案例

    1.4.2 solr字段类型 (1.4.2.1) 字段类型定义和字段类型属性. (1.4.2.2) solr附带的字段类型 (1.4.2.3) 使用货币和汇率 (1.4.2.4) 使用Dates(日期 ...

  2. 1.4.2 solr字段类型--(1.4.2.5)使用枚举字段

    1.4.2 solr字段类型 (1.4.2.1) 字段类型定义和字段类型属性. (1.4.2.2) solr附带的字段类型 (1.4.2.3) 使用货币和汇率 (1.4.2.4) 使用Dates(日期 ...

  3. 1.4.2 solr字段类型--(1.4.2.4)使用Dates(日期)

    1.4.2 solr字段类型 (1.4.2.1) 字段类型定义和字段类型属性. (1.4.2.2) solr附带的字段类型 (1.4.2.3) 使用货币和汇率 (1.4.2.4) 使用Dates(日期 ...

  4. 1.4.2 solr字段类型--(1.4.2.3)使用货币和汇率

    1.4.2 solr字段类型 (1.4.2.1) 字段类型定义和字段类型属性. (1.4.2.2) solr附带的字段类型 (1.4.2.3) 使用货币和汇率 (1.4.2.4) 使用Dates(日期 ...

  5. 1.4.2 solr字段类型--(1.4.2.2)solr附带的字段类型

    1.4.2 solr字段类型 (1.4.2.1) 字段类型定义和字段类型属性. (1.4.2.2) solr附带的字段类型 (1.4.2.3) 使用货币和汇率 (1.4.2.4) 使用Dates(日期 ...

  6. 1.4.2 solr字段类型--(1.4.2.1)字段类型定义和字段类型属性

    1.4.2 solr字段类型 (1.4.2.1) 字段类型定义和字段类型属性. (1.4.2.2) solr附带的字段类型 (1.4.2.3) 使用货币和汇率 (1.4.2.4) 使用Dates(日期 ...

  7. Solr字段类型field type的定义

    摘要: Solr的字段类型定义了Solr如何解析字段数据并将数据检索出来,了解Solr的字段类型定义有助于更好的配置与使用Solr. 字段类型的定义 字段类型的定义主要包含如下四个方面的信息: 名称 ...

  8. Solr字段类型

    一.一般属性 1.name fieldType的名称.该值用于字段定义中的类型属性,强烈建议名称仅包含字母数字和下划线,不能以数字开头[非强制]. 2.class 用于存储和索引此类型数据的类名.可以 ...

  9. 数据库中字段类型对应的C#中的数据类型

    数据库中字段类型对应C#中的数据类型: 数据库                 C#程序 int int32 text string bigint int64 binary System.Byte[] ...

随机推荐

  1. 【转】SQL常用的语句和函数

    原文链接:http://www.cnblogs.com/mailingfeng/archive/2013/01/07/2850116.html order by 的数值型灵活使用 select * f ...

  2. dedecms lnmp 环境搭建。备忘录非教程

    ssh链接到linux服务器,我用的centos 6.5 64位的. #设置dns,ect/reserv.conf 设置,注释掉原来的nameserver,添加nameserver=8.8.8.8访问 ...

  3. B - Kefa and Company

    B - Kefa and Company Time Limit:2000MS     Memory Limit:262144KB     64bit IO Format:%I64d & %I6 ...

  4. ML 徒手系列 拉格朗日乘子法

    拉格朗日乘子法是解决极值问题的方法. 本方法是计算多元函数在约束条件下的极值问题的方法. 1.多元函数与约束问题 如下图所示,f(x,y)为多元函数,g(x,y)=c为约束条件.目的是计算在约束条件下 ...

  5. login placeholder

    $(function(){ function isPlaceholder(){ var input = document.createElement('input'); return 'placeho ...

  6. POJ 2342 Anniversary party (树dp)

    题目链接:http://poj.org/problem?id=2342 有n个人,每个人有活跃值.下面n-1行u和v表示u的上司是v,有直接上司和下属的关系不能同时参加party,问你party最大的 ...

  7. POJ 3174 Alignment of the Planets (暴力求解)

    题意:给定 n 个坐标,问你三个共线的有多少组. 析:这个题真是坑啊,写着 n <= 770,那么一秒时间,三个循环肯定超时啊,我一直不敢写了,换了好几种方法都WA了,也不知道为什么,在比赛时坑 ...

  8. 解决UITableView头部空白

    解决方式1: self.tableView.tableHeaderView = [[UIView alloc] initWithFrame:CGRectMake(0.0f, 0.0f, self.ta ...

  9. OC:基础学习

    OC面向对象的编程语言思想 类与对象.继承与实例化.属性点语法.内存管理.字符串.可见度. 类是一组具有相同特征和行为的事物的抽象 OC的与C相比所具有的新的特点: 定义新的类.类的实例和方法.方法的 ...

  10. MySQL 日期时间

    NOW()函数以`'YYYY-MM-DD HH:MM:SS'返回当前的日期时间,可以直接存到DATETIME字段中.CURDATE()以’YYYY-MM-DD’的格式返回今天的日期,可以直接存到DAT ...