`
leiwuluan
  • 浏览: 705143 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类

solr 字段配置,和数据库数据索引配置

    博客分类:
  • solr
 
阅读更多

配置solr字段、

 

schema.xml 文件里配置

 

先讲解一下,里面的一些字段

 

1、 <types> ...  </types> 表示类型,数据类型

 

<fieldType name="string" class="solr.StrField" sortMissingLast="true" omitNorms="true"/>
<fieldType name="boolean" class="solr.BoolField" sortMissingLast="true" omitNorms="true"/>
<fieldtype name="binary" class="solr.BinaryField"/>
<fieldType name="int" class="solr.TrieIntField" precisionStep="0" omitNorms="true" positionIncrementGap="0"/>
<fieldType name="float" class="solr.TrieFloatField" precisionStep="0" omitNorms="true" positionIncrementGap="0"/>
<fieldType name="long" class="solr.TrieLongField" precisionStep="0" omitNorms="true" positionIncrementGap="0"/>
<fieldType name="double" class="solr.TrieDoubleField" precisionStep="0" omitNorms="true" positionIncrementGap="0"/>
 

不难理解上面就是配置定义solr  数据类型、上面都是solr里面的类型,那么我们也可以配置自已的数据类型,

比如:我们要用到中文分词 的时候,这里配一下IKanalyzer 分词 、并配置它的索引和分词。

<fieldType name="text_cn" class="solr.TextField" positionIncrementGap="100">
    <!--<analyzer class="org.wltea.analyzer.lucene.IKAnalyzer"/> -->
      <analyzer type="index">
             <tokenizer class="org.wltea.analyzer.solr.IKTokenizerFactory" isMaxWordLength="false"/>
             <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" enablePositionIncrements="true" />
             <filter class="solr.StandardFilterFactory"/>
             <filter class="solr.RemoveDuplicatesTokenFilterFactory"/>
      </analyzer>
      <analyzer type="query">  
             <tokenizer class="org.wltea.analyzer.solr.IKTokenizerFactory" isMaxWordLength="true"/>
             <filter class="solr.StopFilterFactory" ignoreCase="false" words="stopwords.txt" enablePositionIncrements="true" />
             <filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true"/>
             <filter class="solr.StandardFilterFactory"/>
             <filter class="solr.RemoveDuplicatesTokenFilterFactory"/>
     </analyzer>  

</fieldType>

 

 

小解释一下field 里面的一些属性:

name:    字段类型名  
class:    java类名  
indexed:    缺省true。 说明这个数据应被搜索和排序,如果数据没有indexed,则stored应是true。  
stored:    缺省true。说明这个字段被包含在搜索结果中是合适的。如果数据没有stored,则indexed应是true。  
sortMissingLast:    指没有该指定字段数据的document排在有该指定字段数据的document的后面  
sortMissingFirst:    指没有该指定字段数据的document排在有该指定字段数据的document的前面  
omitNorms:    字段的长度不影响得分和在索引时不做boost时,设置它为true。一般文本字段不设置为true。  
termVectors:    如果字段被用来做more like this 和highlight的特性时应设置为true。  
compressed:    字段是压缩的。这可能导致索引和搜索变慢,但会减少存储空间,只有StrField和TextField是可以压缩,这通常适合字段的长度超过200个字符。  
multiValued:    字段多于一个值的时候,可设置为true。  
positionIncrementGap:    和multiValued
一起使用,设置多个值之间的虚拟空白的数量 

 

 

2、<fields> ... </fields> 配的是文档字段

   <field name="id" type="string" indexed="true" stored="true" required="true" /> 
   <field name="sku" type="text_en_splitting_tight" indexed="true" stored="true" omitNorms="true"/>
   <field name="name" type="text_general" indexed="true" stored="true"/>
   <field name="alphaNameSort" type="alphaOnlySort" indexed="true" stored="false"/>
   <field name="manu" type="text_general" indexed="true" stored="true" omitNorms="true"/>

name:字段的名字。  
type:字段的类型。  
default:一般用来记录索引的时间。  
required:设置为true时,当字段没有值,则solr会索引文档失败。

multiValued:是否多值

termVectors

termPositions

termOffsets

 

 

动态字段:

   <dynamicField name="*_i"  type="int"    indexed="true"  stored="true"/>
   <dynamicField name="*_s"  type="string"  indexed="true"  stored="true"/>
   <dynamicField name="*_l"  type="long"   indexed="true"  stored="true"/>
   <dynamicField name="*_t"  type="text_general"    indexed="true"  stored="true"/>

 文档的动态字段、

添加文档时,字段以_i 结尾的将将被solr收录 、、solr支持通配符 *

 

唯一key  必须为string

<uniqueKey>id</uniqueKey>

 默认搜索字段

<defaultSearchField>text</defaultSearchField>

SolrQueryParser 默认处理

<solrQueryParser defaultOperator="OR"/>
 

copyField

<copyField source="cat" dest="text"/>
<copyField source="name" dest="text"/>
<copyField source="manu" dest="text"/>
<copyField source="features" dest="text"/>
<copyField source="includes" dest="text"/>
<copyField source="manu" dest="manu_exact"/>
 

字段cat 是文章的标题,字段text 是文章的摘要,

字段ta是文章标题和摘要的联合。添加索引文档时,只需要传入cat text 字段的内容,solr会自动索引ta字段。

 

 

网上找了一个 solr 索引数据库的文章

http://blog.csdn.net/christophe2008/article/details/6299225

 

利用SOLR从数据库创建索引

 

1
0
分享到:
评论
1 楼 青春的、脚步 2012-11-08  
问你个问题 

可以不可以配置  一个字段有N个小字段的这样field

例如

    水果
        绿色
        红色
        白色


我希望 绿色
        红色
        白色这些是可以动态的字段
        可以方便我扩展黑色、其他颜色等。。。。

相关推荐

    Solr数据库插入(全量和增量)索引

    Solr 是一个基于 Lucene 的搜索引擎,可以快速高效地对大量数据进行索引和查询。在实际应用中,我们需要将数据插入 Solr 索引库中,以便实现高效的搜索功能。本文将详细介绍 Solr 数据库插入全量和增量索引的方法和...

    solr同步数据库需要jar包

    4. **转换为Solr文档**:将数据库中的数据转换成Solr可理解的文档格式,这通常涉及数据类型的映射和字段的设置。 5. **索引更新**:使用Solr的UpdateRequest API将转换后的文档添加或更新到索引中。 6. **提交和...

    solr连接数据库配置

    这篇博客“solr连接数据库配置”可能是关于如何在Solr中设置和管理与数据库的连接,以便索引和查询来自数据库的数据。 首先,我们需要理解Solr的数据导入处理器(DataImportHandler,DIH)。DIH是Solr的一个模块,...

    solr定时自动同步数据库需要用到的apache-solr-dataimportscheduler.jar包

    使用Java编写的数据导入配置可以更灵活地处理数据库连接和数据转换逻辑。 在压缩包中,可能包含了以下文件: 1. `apache-solr-dataimportscheduler.jar`: 这是核心的定时同步插件,需要添加到Solr服务器的类路径中...

    跟益达学Solr5之从MySQL数据库导入数据并索引

    - **数据源配置**:定义要导入的数据库表,以及映射到Solr字段的列。 3. **数据导入过程** - **Full Import**:全量导入,将数据库中的所有数据一次性导入到Solr索r。 - **Delta Import**:增量导入,只导入自...

    跟益达学Solr5之增量索引MySQL数据库表数据

    solrconfig.xml定义了索引和查询的行为,而schema.xml则定义了字段类型和字段。 2. **连接MySQL数据库**: 使用JDBC(Java Database Connectivity)驱动,Solr可以与MySQL建立连接。在solrconfig.xml中配置数据导入...

    solr7.4数据库导入Demo(mysql数据库)

    接着,创建`data-config.xml`文件,定义数据源和数据实体。在这个例子中,我们将使用MySQL数据库,所以配置如下: ```xml * FROM your_table"&gt; &lt;!-- Define fields mapping from database columns to Solr ...

    solr4.7从数据库导数据[归类].pdf

    在这个教程中,我们将深入理解如何在 Solr 4.7 中设置和配置 DIH,以便从 SQL Server 2005 数据库导入数据。 首先,你需要准备必要的 JAR 包。Solr 4.7.0 发布包中包含了 `solr-dataimporthandler-extras-4.7.0.jar...

    solr配置中文解析器和将数据导入solr索引库时所需的jar包

    Solr,全称为Apache Solr,是一...正确地配置解析器和管理导入数据所需的jar包,可以确保Solr能有效地处理和索引中文数据,从而提供高效的搜索服务。在实际应用中,可能还需要根据业务需求进行更多的定制化配置和优化。

    solr4.7从数据库导数据[参照].pdf

    ### Solr 4.7 从数据库导入...为了实现从数据库导入数据创建索引的功能,需要对Solr的某个Core进行相应的配置修改。 ###### 2.1 修改solrconfig.xml 在Solr Core的配置文件`solrconfig.xml`中添加以下内容: ```xml ...

    solr增量导入更新索引包

    Solr,作为一款流行的开源全文搜索引擎,经常被用于大规模数据的快速检索。...通过理解并正确应用上述知识点,你可以有效地管理和维护Solr的增量导入更新索引,确保系统的高效运行和数据的实时性。

    Solr的配置

    - **Solr目录**:存放Solr的核心组件(Core),其中包括索引和配置文件。 - **solr-webapp目录**:包含了用于运行Solr服务的Jetty服务器程序。 - **Webapps目录**:内含solr.war文件,这是Solr服务的WAR文件格式的应用...

    Solr配置安装(一)

    它提供了全文检索、命中高亮、拼写检查、实时索引和多种数据类型支持等强大功能,常用于构建高性能的搜索应用。本文将详细介绍如何进行Solr的配置和安装。 1. **下载与解压** 首先,我们需要从Apache Solr的官方...

    基于solr的网站索引架构(一)

    Solr是由Apache Lucene项目维护的搜索平台,其核心功能包括文本分析、索引和搜索,以及结果排序和高亮显示。它支持多种数据源,如文件、数据库等,并提供了RESTful API,便于集成到各种Web应用程序中。 2. **索引...

    solr所需要配置的资源.zip

    4. `data-config.xml`(可选):用于配置数据驱动的索引(Data Import Handler, DIH),允许Solr从外部数据源(如数据库)导入数据。 5. `lib`目录:可以放置自定义的JAR文件,比如IK分词器的jar,这些库会被Solr在...

    solr所需配置文件

    1. **solrconfig.xml**: 这是Solr的核心配置文件,定义了索引和查询的处理方式。例如,它包含了索引写入策略(如实时添加文档)、缓存设置(如查询结果缓存和文档过滤器缓存)、请求处理器的配置以及搜索组件的定义...

Global site tag (gtag.js) - Google Analytics