文档章节

Field、CopyField、DynamicField的一些简介,用法

翊骷
 翊骷
发布于 2014/08/28 11:20
字数 690
阅读 84
收藏 0

Field:

   Field就是一个字段,定义一个Field很简单:

  1. <field name="price" type="sfloat" indexed="true" stored="true"/>  

基本上属性也和FieldType类似,他的属性会覆盖掉FieldType的同名属性。


CopyField(本段内容直接从solr中文网copy而来):

你可能想让document的一些字段可以多次使用。solr 有一个字段复制机制,可以提交多个不同类型字段集中到一个字段。字段复制主要涉及两个概念,source和destination,一个是要复制的字段,另一个是要复制到哪个字段,以下是个例子:
1
<copyFieldsource="cat"dest="text"maxChars="30000"/>

上例中,如果text字段有数据的话,cat字段的内容将被添加到text字段中。maxChars 参数,一个int类型参数,用于限制复制的字符数。

source和destination都支持通配符。以下是一个将所有以 _t 结尾的字段全部复制到text字段中。
1
<copyFieldsource="*_t"dest="text"maxChars="25000"/>

    其实说的简单一点,比如现在你要查询包涵"Java"的博客, 那么你肯定要查内容,标题是否包含Java,但是solr不能像SQL那样,where tittle like '%Java%'  or  content like '%Java%'.   这个时候copyField就派上用场了, 定义一个新字段,将title和content 复制到这个新字段,索引的时候,直接从这个新字段查询,这样就达到目地了。  这便是copyField的典型应用场景  。注意:如果dest由多个source构成,就需要将其指定为multiValued。
在网上找了一个例子:
  1. <schema name="eshequn.post.db_post.0" version="1.1"    
  2.     xmlns:xi="http://www.w3.org/2001/XInclude">    
  3.      <fields>    
  4.         <!-- for title -->    
  5.         <field name="t" type="text" indexed="true" stored="false" />    
  6.         <!-- for abstract -->    
  7.         <field name="a" type="text" indexed="true" stored="false" />    
  8.         <!-- for title and abstract -->    
  9.         <field name="ta" type="text" indexed="true" stored="false" multiValued="true"/>    
  10.     </fields>    
  11.     <copyField source="t" dest="ta" />    
  12.     <copyField source="a" dest="ta" />    
  13. </schema>    

DynamicField:
   
动态字段(Dynamic fields)允许 solr 索引没有在 schema 中明确定义的字段。这个在忘记定义一些字段时很有用。动态字段可以让系统更灵活,通用性更强。
动态字段和常规字段类似,除了它名字中包含一个通配符外,在索引文档时,一个字段如果在常规字段中没有匹配时,将到动态字段中匹配。
假设schema中定义了一个叫*_i的动态动态字段,如果要索引一个叫 cost_i 的字段,但是 schema 中不存在 cost_i 的字段,这样 cost_i  将被索引到 *_i 字段中。
动态字段也是定义在 schema.xml 文件中,和其他字段一样,它也有个名词,字段类型,和属性。
1
<dynamicFieldname="*_i"type="sint"indexed="true"stored="true"/>

建议在 schema.xml 定义一些基本的动态字段,以备扩展之用。

本文转载自:http://blog.csdn.net/zl3450341/article/details/12849341

翊骷
粉丝 14
博文 125
码字总数 68191
作品 0
济南
程序员
私信 提问
Solr配置文件:schema.xml

Solr配置文件:schema.xml http://www.blogjava.net/conans/articles/379545.html 一、字段配置(schema) schema.xml位于solr/collection1/conf/目录下,类似于数据表配置文件, 定义了加入...

一枚Sir
2014/04/14
0
0
关于solr schema.xml 和solrconfig.xml的解释

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

翊骷
2014/09/01
0
0
关于solr schema.xml 和solrconfig.xml的解释

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

David_Tio
2014/02/13
0
0
SOLR 中 Schema.xml 的filedType 的一些属性的理解

dynamicField 的作用是什么? 如果你需要在schema.xml文件中的<field> ......</field>部分定义多个<field>(mathscore,chinesescore,english_score,....),而恰好这些<field>的type属性又相......

翊骷
2014/09/01
0
0
Solr4.7---Field、CopyField、DynamicField

Field: Field就是一个字段,定义一个Field很简单: 基本上属性也和FieldType类似,他的属性会覆盖掉FieldType的同名属性。 CopyField(本段内容直接从solr中文网copy而来): 你可能想让doc...

一枚Sir
2014/04/21
0
1

没有更多内容

加载失败,请刷新页面

加载更多

Spring AOP之同一个对象方法内部自调用导致事务失效问题

对于像我这种喜欢滥用AOP的程序员,遇到坑也是习惯了,不仅仅是事务,其实只要脱离了Spring容器管理的所有对象,对于SpringAOP的注解都会失效,因为他们不是Spring容器的代理类,SpringAOP,就切入不...

xiaomin0322
33分钟前
1
0
Linux learn(七)

例行工作安排(定时任务)at,cron at 由atd服务提供,at指令所产生的的要运作的工作都以文本文件的方式写入 /var/spool/at/目录内,该工作便能等待at的这个服务取用与执行了。 权限限制相关...

lazy~
40分钟前
2
0
Vim与clang-format

前一段时间因工作需要参与了一个开源项目,在向github提交代码后提示格式校验失败。 项目的管理者告知,要想修改的代码能入库需要使用Clang-Format校验。 需要使用下面的命令对上次的修改重新...

DB_Terrill
42分钟前
1
0
Kafka写入数据保证不丢失

Kafka写入数据保证不丢失: 每个partition至少有一个follower在ISR列表中,跟上了Leader的数据同步 每次写入数据时,都要求至少写入partition leader成功,还至少一个ISR里的follower写入成功...

春哥大魔王的博客
49分钟前
1
0
git仓库删除所有提交历史记录,成为一个干净的新仓库

把旧项目提交到git上,但是会有一些历史记录,这些历史记录中可能会有项目密码等敏感信息。如何删除这些历史记录,形成一个全新的仓库,并且保持代码不变呢? 1.切换到新的分支 git check...

dragon_tech
52分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部