`
Josh_Persistence
  • 浏览: 1654029 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类

Solr中的Field、CopyField、DynamicField

    博客分类:
  • Solr
阅读更多

Field:

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

 

 

<field name="tile" type="string" indexed="true" stored="true"/>

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

 

 

CopyField

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

<copyField source="cat" dest="text" maxChars="30000" />

上例中,如果cat字段有数据的话,cat字段的内容将被添加到text字段中。maxChars 参数,一个int类型参数,用于限制复制的字符数。source和destination都支持通配符。以下是一个将所有以 _t 结尾的字段全部复制到text字段中。

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

 

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

 

    注意:如果dest由多个source构成,就需要将其指定为multiValued。   

 

 

<schema name="eshequn.post.db_post.0" version="1.1"  
    xmlns:xi="http://www.w3.org/2001/XInclude">  
     <fields>  
        <!-- for title -->  
   <field name="t" type="text" indexed="true" stored="false" />  
   <!-- for abstract -->  
   <field name="a" type="text" indexed="true" stored="false" />  
    <!-- for title and abstract -->  
 <field name="ta" type="text" indexed="true" stored="false" multiValued="true"/>  
    </fields>  
    <copyField source="t" dest="ta" />  
    <copyField source="a" dest="ta" />  
</schema>  

 

 

 

DynamicField:

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

相关推荐

    solr中文分词器

    3. **修改Solr配置**:在`solrconfig.xml`中,添加IK Analyzer的相关配置,比如资源加载路径,以便Solr启动时能正确加载分词器: ```xml ${solr.install.dir}/dist/" regex=".*analyzer-.*\.jar" /&gt; ``` 4. **...

    solr中的mmesg4j中文分词器安装

    ### Solr中的MMSeg4J中文分词器安装与配置详解 #### 一、MMSeg4J简介 MMSeg4J是一款高效的Java实现的中文分词工具包,它基于统计和规则混合的方法来处理中文文本的分词问题。在搜索引擎如Solr中,通过集成MMSeg4J...

    ikanalyzer-solr中文分词包兼容solr7.5

    标题中提到的"ikanalyzer-solr中文分词包兼容solr7.5"意味着这个分词器已经过优化,可以与Solr 7.5版本无缝集成,确保在该版本的Solr环境中正常运行。 首先,我们来了解一下ikanalyzer的核心组件: 1. `ik-...

    solr中文分词jar包ik-analyzer 含class配置 ik-analyzer-7.5.0

    2. **配置Solr schema.xml**:在Solr的schema.xml文件中,定义字段类型(fieldType),并指定使用Ik Analyzer。例如: ```xml &lt;fieldType name="text_ik" class="solr.TextField" positionIncrementGap="100"&gt; ...

    支持solr5.5 solr6.0中IK分词需要的资料

    在Solr中,分词器(Tokenizer)是文本分析的重要组成部分,它负责将输入的原始文本拆分成可搜索的独立单元——词语。IK分词器(Intelligent Chinese Analyzer for Solr,简称IK)是一款针对中文的高效分词工具,专为...

    solr中文分词高版本

    Solr是一款强大的全文搜索引擎,广泛应用于企业级的信息检索系统中。在处理中文内容时,一个合适的中文分词器是至关重要的。"solr中文分词高版本"的标题表明我们在这里讨论的是适用于Solr 6.5及以上版本的中文分词...

    solr 中文分词

    要在 Solr 中使用 IK Analyzer,首先需要将其添加到 Solr 的类路径中,然后在 Solr 的 schema.xml 或 managed-schema 文件中配置字段类型(fieldType),指定使用 IK Analyzer。同时,可以设置自定义词典路径,以...

    solr 5.x 和 6.x 最新中文分词器

    在Solr 5.x和6.x版本中,中文分词器扮演着至关重要的角色,它负责将中文文本拆分成有意义的词汇,便于索引和查询。下面将详细介绍Solr中的中文分词器及其相关知识。 一、Solr中文分词器概述 在处理中文文档时,由于...

    solr 中文分词其IKAnalyzer 支持solr版本5.X-7.X

    2. **配置schema.xml**:在Solr的配置文件`schema.xml`中,定义字段类型(fieldType)并指定使用IKAnalyzer。例如: ```xml &lt;fieldType name="text_ik" class="solr.TextField"&gt; &lt;/fieldType&gt; ``` ...

    solr中cache综述

    ### Solr中Cache综述及优化策略 #### 一、概述 Apache Solr是一个高性能、可伸缩的企业级搜索平台,它基于Lucene构建,在实际应用中为了提高查询效率和性能,内置了一系列缓存机制(Cache)。这些缓存机制不仅能够...

    ikanalyzer-solr8.4.0_solr8_solr_ikanalyzer_中文分词_

    3. **配置Schema.xml**:在 Solr 的 schema.xml 文件中,我们需要定义字段类型(FieldType)并指定使用 ikanalyzer。例如,可以创建一个名为 `text_ik` 的字段类型,并设置其`analyzer_class`属性为 `org.apache....

    solr4.7中文企业开发参考文档

    以上只是Solr 4.7企业开发中的部分核心知识点,实际应用中还需要结合具体业务需求进行定制和优化。提供的文档“SOLR中文教程.doc”和“Solr4.7中文学习手册.docx”将更深入地阐述这些概念和操作方法,为开发者提供...

    solr中文解析器以及使用文档

    然后,在schema.xml中定义字段类型(fieldType),并设置该类型的分析器为IK Analyzer。 4. **自定义词典**:IK Analyzer允许用户自定义词典,以满足特定领域的搜索需求。例如,可以添加行业术语或公司名,确保它们...

    Solr5.4中文分词

    在Solr 5.4版本中,对中文分词的支持是通过特定的分词器实现的。本文将详细介绍如何在Solr 5.4中配置中文分词库。 首先,"Solr5.4中文分词"这个标题表明我们关注的是针对Solr 5.4的一个特定分词解决方案。这通常...

    solr6.0中文分词

    在 Solr 6.0 中,IKAnalyzer 不仅可以继续为 Solr 5.x 提供服务,还增加了对新版本 Solr 的兼容性,确保了旧项目的平滑升级和新项目的稳定运行。 使用 IKAnalyzer 配置 Solr 6.0 或 5.x 的步骤大致如下: 1. **...

    SOLR-7学习2020.docx

    managed-schema.xml 文件是 Solr 中用于定义字段类型(fieldType)和字段(field)的关键配置文件,其中包含了对索引和搜索行为的详细设定。例如,`Field` 和 `dynamicField` 用于定义字段的属性,如 `indexed`(是否...

    solr(中文分词器)集群

    在本压缩包中,包含Solr的源码,以及IK分词器和Zookeeper的相关内容。下面我们将详细探讨Solr集群的构建与使用,以及IK分词器和Zookeeper的角色。 首先,让我们来看看Solr集群的构建。一个Solr集群是由多个独立的...

    支持solr 5.3.0的IKAnalyzer中文分词器

    IKAnalyzer中文分词器本身已经不支持最新的solr 5,集成到solr中分词会报错,这里将解决了solr 5支持问题的最新IK包共享出来,希望能帮到各位! 附上IK在schema.xml中的配置: &lt;fieldType name="text_ik" class=...

Global site tag (gtag.js) - Google Analytics