3 Solr配置文件 schema.xml

1 添加自己的分词器(mmseg4j)

意思是textCommplex 这个类型,用的是 com.chenlb.mmseg4j.solr.MMSegTokenizerFactory 这个分词器,词库是用到的solr.home目录下面的dic目录, 但是mmseg4j.jar 1.9 把词库包进去了,想要用外面的,需要把里面的删除掉, <filter class="solr.LowerCaseFilterFactory"/>  下面可选择性的添加一些自己的过滤器

     <fieldType name="textComplex" class="solr.TextField" positionIncrementGap="100" >
            <analyzer>
               <tokenizer class="com.chenlb.mmseg4j.solr.MMSegTokenizerFactory" mode="complex" dicPath="dic"/>
               <filter class="solr.LowerCaseFilterFactory"/>
           </analyzer>
     </fieldType>  

     <fieldType name="textMaxWord" class="solr.TextField" positionIncrementGap="100" >
        <analyzer>
            <tokenizer class="com.chenlb.mmseg4j.solr.MMSegTokenizerFactory" mode="max-word" dicPath="dic"/>
            <filter class="solr.LowerCaseFilterFactory"/>
        </analyzer>
     </fieldType>
    <fieldType name="textSimple" class="solr.TextField" positionIncrementGap="100" >
       <analyzer>
           <tokenizer class="com.chenlb.mmseg4j.solr.MMSegTokenizerFactory" mode="simple" dicPath="dic"/>
           <filter class="solr.LowerCaseFilterFactory"/>
       </analyzer>
     </fieldType>

2 添加自己的字段

name:字段名称 type:字段类型 indexed:是否索引 stored:是否存储 multiValued:是否是多值

NOT_ANALYZED_NOT_NORMS YES 标识符(主键、文件名),电话号码,身份证号,姓名,日期
ANAYLZED YES 文档标题和摘要
ANAYLZED NO 文档正文
NO YES 文档类型,数据库主键(不进行索引)
NOT_ANALYZED NO 隐藏关键字
Field.Store.*
YES:将会存储域值,原始字符串的值会保存在索引,以此可以进行相应的恢复操作,对于主键,标题可以是这种方式存储
NO:不会存储域值,通常与Index.ANAYLIZED合起来使用,索引一些如文章正文等不需要恢复的文档

使用Field.Index.*来进行操作
Index.ANALYZED:进行分词和索引,适用于标题、内容等
Index.NOT_ANALYZED:进行索引,但是不进行分词,如果身份证号,姓名,ID等,适用于精确搜索
Index.ANALYZED_NOT_NORMS:进行分词但是不存储norms信息,这个norms中包括了创建索引的时间和权值等信息
Index.NOT_ANALYZED_NOT_NORMS:即不进行分词也不存储norms信息
Index.NO:不进行索引
<field name="msg_title" type="textComplex" indexed="true" stored="true" multiValued="false" /> <field name="msg_content" type="textComplex" indexed="true" stored="false" multiValued="false" />
<field name="msg_text" type="textComplex" indexed="true" stored="false" multiValued="true" /> 

3 合并字段

 把msg_title he msg_content 都拷贝到msg_text 中, 这是上面 field msg_text 的 multiValued 字段就必须为 true

<copyField source="msg_title" dest="msg_text"/>
<copyField source="msg_content" dest="msg_text"/>

4 设置默认搜索字段

在schema.xml 中把注释这个打开进行修改,但是并不生效,因为

Un-commenting defaultSearchField will be insufficient if your request handler in solrconfig.xml defines "df", which takes precedence. That would need to be removed.

<defaultSearchField>text</defaultSearchField>

在 solrconfig.xml 中也有这个配置,而且优先级更高,所以要让这个生效,必须把 <str name="df">text</str> 这个删除了

<lst name="defaults">
<str name="echoParams">explicit</str>
<int name="rows">10</int>
<str name="df">text</str>
</lst>

5 过滤器

1 停用词过滤器,就是哪些词忽略掉,参考stopwords.txt (eg:a an and are  as at be but)

<filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" />

2 同义词过滤器,就是哪些词是一个意思,参考synonyms.txt(eg: pixima => pixma)

<filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true"/>

3 转小写过滤器
 <filter class="solr.LowerCaseFilterFactory"/>

6 动态字段

意识字段名称以_i结尾的,在名称匹配不到的情况下,就来匹配动态字段这个,那么就是int类型(eg:xxoo_i 找不到<Field name="xxoo"> 的情况)

<dynamicField name="*_i"  type="int"    indexed="true"  stored="true"/>
时间: 2024-12-28 02:44:37

3 Solr配置文件 schema.xml的相关文章

solr的schema.xml配置属性解释

schema.xml做什么? SOLR加载数据,创建索引和数据时,核心数据结构的配置文件是schema.xml,该配置文件主要用于配置数据源,字段类型定义,搜索类型定义等.schema.xml的配置直接影响搜索结果的准确性与效率. <types></types>节点 types节点主要用于搜索类型的定义,这里给出常用类型的定义. 1 <fieldType name="string" class="solr.StrField" sortM

认识配置文件schema.xml(managed-schema)

1.schema文件是在SolrConfig中的架构工厂定义,有两种定义模式: 1.1.默认的托管模式: solr默认使用的就是托管模式.也就是当在solrconfig.xml文件中没有显式声明<schemaFactory/>时,Solr隐式地使用ManagedIndexSchemaFactory,它是默认的"mutable"并将模式信息保存在一个managed-schema文件中. [html] view plain copy <span style="f

solr配置-Schema.xml

可参考配置:http://wiki.apache.org/solr/SchemaXml(基本上文档上面讲的已经很详细了) 先来看一下Schema.xml都有什么配置 1,uniqueKey 2,n多name不一样的fieldType 3,各种field :field,dynamicField,copyField 4,默认被注释掉的defaultSearchField,solrQueryParser,Similarity 下面来看一下具体都什么意思: 1,uniqueKey:文档的唯一标识.唯一键

Solr中schema.xml的解释

接Solr-4.10.2与Tomcat整合.schema.xml位于D:\solr\data\solr\collection1\conf\中.1.fieldType节点    name: FieldType的名称    class: 指向org.apache.solr.analysis包里面对应的class名称,用来定义这个类型的行为    omitNorms: 字段检索时被省略相关的规范    positionIncrementGap:定义在同一个文档中此类型数据的空白间隔,避免短语匹配错误 

solr配置schema.xml学习

solr创建索引.添加数据的关键是配置schema.xml文件,该文件中主要是完成配置数据源.索引字段.数据类型等定义.同时,该文件的配置直接影响到solr搜索的效率和准确性. 一.搜索类型FileType name:指的是FileType的名字 class:指向org.apache.solr.analysis包里面对应的class名称,用来定义这个类型的行为 <types> <fieldType name="string" class="solr.StrF

solr的schema.xml配置介绍

schema.xml配置介绍如下: 常见的元素有以下几种: <field name="weight" type="float" indexed="true" stored="true"/> <dynamicField name="*_i"  type="int"    indexed="true"  stored="true"/&

Solr索引库l配置文件schema.xm要点翻译

<?xml version="1.0" encoding="UTF-8" ?>   略... <!--   这是Solr的schema文件,应该命名为schema.xml,并且在solr home的conf目录下 (如,默认在./solr/conf/schema.xml).  有关如何根据需要定制化该文件,请参照:  http://wiki.apache.org/solr/SchemaXml  性能须知: 这里包含了很多实际应用不需要的可选项. 为

Solr:Schema设计

Solr将数据以结构化的方式存入系统中,存储的过程中可以对数据建立索引,这个结构的定义就是通过schema.xml来配置的. <?xml version="1.0" encoding="UTF-8" ?> <!-- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file

schema.xml文件配置

schema.xml是Solr一个配置文件,它包含了你的文档所有的字段,以及当文档被加入索引或查询字段时,这些字段是如何被处理的.这个文件被存储在Solr主文件夹下的conf目录下,默认的路径./solr/conf/schema.xml,也可以是Solr webapp的类加载器所能确定的路径.在下载的Solr包里,有一个schema的样例文件,用户可以从那个文件出发,来观察如何编写自己的Schema.xml. type节点 先来看下type节点,这里面定义FieldType子节点,包括name.