专栏名称: ImportNew
伯乐在线旗下账号,专注Java技术分享,包括Java基础技术、进阶技能、架构设计和Java技术领域动态等。
目录
相关文章推荐
芋道源码  ·  微服务架构拆分的 7 大黄金法则 ·  9 小时前  
芋道源码  ·  入职第一天,看了公司代码,牛马沉默了 ·  9 小时前  
芋道源码  ·  SpringBoot ... ·  2 天前  
Java编程精选  ·  CEO裁员后不理解:原来100个人干50个人 ... ·  5 天前  
51好读  ›  专栏  ›  ImportNew

全文检索引擎 Solr 系列(3)— Solr 核心概念、配置文件

ImportNew  · 公众号  · Java  · 2017-04-09 12:10

正文

(点击上方蓝字,快速关注我们)


作者:ImportNew - 刘志军

如有好文章投稿,请点击 → 这里了解详情


Document


Document是Solr索引(动词,indexing)和搜索的最基本单元,它类似于关系数据库表中的一条记录,可以包含一个或多个字段(Field),每个字段包含一个name和文本值。字段在被索引的同时可以存储在索引中,搜索时就能返回该字段的值,通常文档都应该包含一个能唯一表示该文档的id字段。例如:


    company123

    Atlanta

    Georgia

    Code Monkeys R Us, LLC

    we write lots of code

    2013-06-01T15:26:37Z


Schema


Solr中的Schema类似于关系数据库中的表结构,它以schema.xml的文本形式存在在conf目录下,在添加文当到索引中时需要指定Schema,Schema文件主要包含三部分:字段(Field)、字段类型(FieldType)、唯一键(uniqueKey)


  • 字段类型(FieldType):用来定义添加到索引中的xml文件字段(Field)中的类型,如:int,String,date,


  • 字段(Field):添加到索引文件中时的字段名称


  • 唯一键(uniqueKey):uniqueKey是用来标识文档唯一性的一个字段(Feild),在更新和删除时用到


例如:


   

   

 

    id

   

   

         

           

           

           

           

         

         

           

           

           

           

         

   


Field


在Solr中,字段(Field)是构成Document的基本单元。对应于数据库表中的某一列。字段是包括了名称,类型以及对字段对应的值如何处理的一种元数据。比如:



  • Indexed:Indexed=true时,表示字段会加被Sorl处理加入到索引中,只有被索引的字段才能被搜索到。


  • Stored:Stored=true,字段值会以保存一份原始内容在在索引中,可以被搜索组件组件返回,考虑到性能问题,对于长文本就不适合存储在索引中。


Field Type


Solr中每个字段都有一个对应的字段类型,比如:float、long、double、date、text,Solr提供了丰富字段类型,同时,我们还可以自定义适合自己的数据类型,例如:


 

 

      

         

     

      

         

     

 

 


Solrconfig


如果把Schema定义为Solr的Model的话,那么Solrconfig就是Solr的Configuration,它定义Solr如果处理索引、高亮、搜索等很多请求,同时还指定了缓存策略,用的比较多的元素包括:


  • 指定索引数据路径


${solr.data.dir:./solr/data}


  • 缓存参数


  class="solr.FastLRUCache"

  size="512"

  initialSize="512"

  autowarmCount="0"/>

 

 

  class="solr.LRUCache"

  size="512"

  initialSize="512"

  autowarmCount="0"/>

 

 

 

  class="solr.LRUCache"

  size="512"

  initialSize="512"

  autowarmCount="0"/>


  • 请求处理器


请求处理器用于接收HTTP请求,处理搜索后,返回响应结果的处理器。比如:query请求:


     

       explicit

       json

       true

       text

     


每个请求处理器包括一系列可配置的搜索参数,例如:wt,indent,df等等。  


  • 搜索组件


系列



看完本文有收获?请转发分享给更多人

关注「ImportNew」,看技术干货