solr Field、CopyField、DynamicField

落日映苍穹つ 2022-06-12 15:12 244阅读 0赞

上面一节乱七八槽的讲了一下FieldType。 其实你可以想的简单一点,FieldType就好像是我们在Java中自定义类型。

Field:

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

[html] view plain copy

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

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

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

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










1



<
copyField
source
=
“cat”
dest
=
“text”
maxChars
=
“30000”
/>

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

source和destination都支持通配符。以下是一个将所有以 _t 结尾的字段全部复制到text字段中。










1



<
copyField
source
=
“*_t”
dest
=
“text”
maxChars
=
“25000”
/>

  1. 其实说的简单一点,比如现在你要查询包涵"Java"的博客, 那么你肯定要查内容,标题是否包含Java,但是solr不能像SQL那样,where tittle like '%Java%' or content like '%Java%'. 这个时候copyField就派上用场了, 定义一个新字段,将titlecontent 复制到这个新字段,索引的时候,直接从这个新字段查询,这样就达到目地了。 这便是copyField的典型应用场景 。注意:如果dest由多个source构成,就需要将其指定为multiValued

在网上找了一个例子:

[html] view plain copy

  1. <**schema** name=”eshequn.post.db_post.0” version=”1.1”
  2. xmlns:xi=”http://www.w3.org/2001/XInclude"**>**
  3. <**fields**>
  4. <**field name=”t” type=”text” indexed=”true” stored=”false” />**
  5. <**field name=”a” type=”text” indexed=”true” stored=”false” />**
  6. <**field name=”ta” type=”text” indexed=”true” stored=”false” multiValued=”true”/>**
  7. </**fields**>
  8. <**copyField source=”t” dest=”ta” />**
  9. <**copyField source=”a” dest=”ta” />**
  10. </**schema**>

DynamicField:

动态字段(Dynamic fields)允许 solr 索引没有在 schema 中明确定义的字段。这个在忘记定义一些字段时很有用。动态字段可以让系统更灵活,通用性更强。

动态字段和常规字段类似,除了它名字中包含一个通配符外,在索引文档时,一个字段如果在常规字段中没有匹配时,将到动态字段中匹配。

假设schema中定义了一个叫*_i的动态动态字段,如果要索引一个叫 cost_i 的字段,但是 schema 中不存在 cost_i 的字段,这样 cost_i 将被索引到 *_i 字段中。

动态字段也是定义在 schema.xml 文件中,和其他字段一样,它也有个名词,字段类型,和属性。










1



<
dynamicField
name
=
“*_i”
type
=
“sint”
indexed
=
“true”
stored
=
“true”
/>

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

发表评论

表情:
评论列表 (有 0 条评论,244人围观)

还没有评论,来说两句吧...

相关阅读

    相关 Solr IV——Solr查询

        本文分为两部分,第一部分是对查询语法的介绍,第二部分是对这些语法进行实际测试。 常用查询参数 常用基本查询: q 查询条件,是一个字符串。该字符串是非

    相关 solr

    一、           Introduction Solr是一个独立的企业级搜索应用服务器,对外提供类似web-service的api接口。它是高性能的,基于lucene的

    相关 Solr】——Solr7安装教程

    前提     solr已经升级7.1,但是我们公司的solr还是使用的4.4,最近公司打算在系统上线的时候升级一下,重要的是,人家花费了大气将solr升级,从技术的角度来说s

    相关 SOLR

    1.2 Solr安装 1:安装 Tomcat,解压缩即可。 2:解压 solr。 3:把 solr 下的dist目录solr-4.10.3.war部署到 Tomcat

    相关 solr

    什么是solr? Solr 是一个可扩展的,可部署,搜索/存储引擎,优化搜索大量以文本为中心的 数据 Solr (war包) 开源搜索框架 企业级 也可以用于存储