Solr6.6.2之基本使用

一、managed-schema

Solr6.6.2之基本使用_第1张图片
managed-schema文件中,主要配置了solrcore的一些数据信息,包括FieldFieldType的定义等信息,在solr中,FieldFieldType都需要先定义后使用。

1、Field

"id" type="string" indexed="true" stored="true" required="true" multiValued="false" /> 
  • Name:指定域的名称
  • Type:指定域的类型
  • Indexed:是否索引
  • Stored:是否存储
  • Required:是否必须
  • multiValued:是否多值,比如商品信息中,一个商品有多张图片,一个Field想存储多个值的话,必须将multiValued设置为true。

2、dynamicField

"*_i" type="int" indexed="true" stored="true"/>
  • Name:指定动态域的命名规则

3、uniqueKey

<uniqueKey>iduniqueKey>
其中的id是在Field标签中已经定义好的域名,而且该域要设置为required为true。
一个managed-schema文件中必须有且仅有一个唯一键

4、copyField

source="cat" dest="text"/>
  • Source:要复制的源域的域名
  • Dest:目标域的域名

dest指定的目标域,必须设置multiValued为true。

5、FieldType

<fieldType name="text_general" class="solr.TextField" positionIncrementGap="100">
  <analyzer type="index">
    <tokenizer class="solr.StandardTokenizerFactory"/>
    <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" />
    
    <filter class="solr.LowerCaseFilterFactory"/>
  analyzer>
  <analyzer type="query">
    <tokenizer class="solr.StandardTokenizerFactory"/>
    <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" />
    <filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true"/>
    <filter class="solr.LowerCaseFilterFactory"/>
  analyzer>
fieldType>
  • Name:指定域类型的名称
  • Class:指定该域类型对应的solr的类型
  • Analyzer:指定分析器
  • Type:index、query,分别指定搜索和索引时的分析器
  • Tokenizer:指定分词器
  • Filter:指定过滤器

二、中文分词器(IKAnalyzer-6.5.0.jar)

1、将ikanalyzer的jar包拷贝到以下目录

Solr6.6.2之基本使用_第2张图片

2、将ikanalyzer的扩展词库的配置文件拷贝到以下目录

Solr6.6.2之基本使用_第3张图片

3、在managed-schema中配置FieldType和Field


<fieldType name="text_ik" class="solr.TextField">
     <analyzer class="org.wltea.analyzer.lucene.IKAnalyzer"/>
fieldType>
<field name="text_ik" type="text_ik" indexed="true" stored="true" multiValued="false" />

4、重启tomcat

Solr6.6.2之基本使用_第4张图片


三、配置业务Field(managed-schema)

Solr6.6.2之基本使用_第5张图片
需要往索引库添加的字段有:
pid、name、catalog、catalog_name、price、description、picture

FieldType:

经分析,由于中文分词器已经配置完FieldType,所以目前FieldType已经满足需要,无需配置。

Field



<field name="product_name" type="text_ik" indexed="true" stored="true"/>

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

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

<field name="product_price" type="float" indexed="true" stored="true"/>

<field name="product_description" type="text_ik" indexed="true" stored="false"/>

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


<field name="product_keywords" type="text_ik" indexed="true" stored="true" multiValued="true"/> 

<copyFile source="product_name" dest="product_keywords" />

<copyFile source="product_description" dest="product_keywords" />

四、DataImport

该插件可以将数据库中指定的sql语句的结果导入到solr索引库中。

1、添加jar包

a)将/solr-6.6.2/distsolr-dataimporthandler-6.6.2.jar拷贝到/solr_home/contrib/dataimporthandler/lib
Solr6.6.2之基本使用_第6张图片
b)将mysql的驱动包,复制到以下目录(注意:原来没有的文件夹就自己新建)
Solr6.6.2之基本使用_第7张图片
c)修改solrconfig.xml,增加以下内容

"${solr.install.dir:..}/contrib/dataimporthandler/lib" regex=".*\.jar" />
"${solr.install.dir:..}/contrib/db/lib" regex=".*\.jar" />

2、配置requestHandler

solrconfig.xml中增加以下内容

<requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler">
    <lst name="defaults">
        <str name="config">data-config.xmlstr>
    lst>
requestHandler>

3、创建data-config.xml

solrconfig.xml同级目录下,创建data-config.xml


<dataConfig>
    <dataSource name="source" 
        type="JdbcDataSource" 
        driver="com.mysql.jdbc.Driver" 
        url="jdbc:mysql://localhost:3306/solr" 
        user="root" password="root" 
        batchSize="-1" />
    <document>
        <entity name="product" query="select pid,name,catalog,catalog_name,price,description,picture from products">
            <field column="pid" name="id"/>
            <field column="name" name="product_name"/>
            <field column="catalog" name="product_catalog"/>
            <field column="catalog_name" name="product_catalog_name"/>
            <field column="price" name="product_price"/>
            <field column="description" name="product_description"/>
            <field column="picture" name="product_picture"/>
        entity>
    document>
dataConfig>

4、重启tomcat

Solr6.6.2之基本使用_第8张图片
Solr6.6.2之基本使用_第9张图片

上一篇:《Solr6.6.2之环境搭建》
下一篇:《Solr6.6.2之SolrJ》

你可能感兴趣的:(【中间件】Solr)