zoukankan      html  css  js  c++  java
  • solr学习笔记

    前言

    solr是apach基于Lucene开发的成熟的框架,这里我们学习如何部署、使用。关于集群会在后面继续添加

    linux部署

    mkdir /usr/local/solr && cd /usr/local/solr
    # 把tomcat、solr和IK分词器复制到当前目录
    wget http://archive.apache.org/dist/lucene/solr/4.10.3/solr-4.10.3.tgz
    wget http://124.202.164.13/files/208300000CA11C0C/mirror.bit.edu.cn/apache/tomcat/tomcat-7/v7.0.91/bin/apache-tomcat-7.0.91.tar.gz
    wget IK……
    
    # 处理tomcat
    tar -zxvf apache-tomcat-7.0.91.tar.gz
    mv apache-tomcat-7.0.91 tomcat
    
    # 处理solr
    tar -zxvf solr-4.10.3.tar
    
    # 处理解析器
    unzip IKAnalyzer2012FF_hf1.zip -d ./ik
    
    # 复制solr.war包到tomcat
    cp solr-4.10.3/example/webapps/solr.war tomcat/webapps
    /usr/local/solr/tomcat/bin/startup.sh
    /usr/local/solr/tomcat/bin/shutdown.sh
    rm tomcat/webapps/solr.war
    
    # 复制项目需要的jar包
    cp solr-4.10.3/example/lib/ext/* tomcat/webapps/solr/WEB-INF/lib
    
    # 复制出solr实例
    cp -r solr-4.10.3/example/solr ./
    mv solr solrhome
    
    # 配置
    vim tomcat/webapps/solr/WEB-INF/web.xml
    # 取消注释节点:env-entry,并修改value为:/usr/local/solr/solrhome
    

    增加一个实例

    cp -r solrhome/collection1 solrhome/collection2
    vim solrhome/collection2/core.properties
    # 修改为collection2即可
    

    配置中文分词器

    cp ik/IKAnalyzer2012FF_u1.jar tomcat/webapps/solr/WEB-INF/lib
    mkdir tomcat/webapps/solr/WEB-INF/classes
    cp ik/IKAnalyzer.cfg.xml tomcat/webapps/solr/WEB-INF/classes/
    cp ik/stopword.dic tomcat/webapps/solr/WEB-INF/classes/
    
    # 自定义扩展词典
    touch tomcat/webapps/solr/WEB-INF/classes/ext.dic
    vim tomcat/webapps/solr/WEB-INF/classes/IKAnalyzer.cfg.xml
    # 取消自定义扩展词典的注释
    
    # 配置一个使用分词器的域
    vim solrhome/collection1/conf/schema.xml
    <!-- IKAnalyzer-->
    <fieldType name="text_ik" class="solr.TextField">
      <analyzer class="org.wltea.analyzer.lucene.IKAnalyzer"/>
    </fieldType>
    <!--IKAnalyzer Field-->
    <field name="content_ik" type="text_ik" indexed="true" stored="true" /> 
    
    

    导入插件集成

    mkdir solrhome/collection1/lib
    cp solr-4.10.3/dist/solr-dataimporthandler-4.10.3.jar solrhome/collection1/lib/
    cp solr-4.10.3/dist/solr-dataimporthandler-extras-4.10.3.jar solrhome/collection1/lib/
    # 下载mysql的jar包到lib目录
    wget -P solrhome/collection1/lib/ https://raw.githubusercontent.com/tianyunperfect/jar_back/master/mysql-connector-java-5.1.32.jar
    
    vim solrhome/collection1/conf/solrconfig.xml
    # 添加:
    <requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler">
        <lst name="defaults">
          <str name="config">data-config.xml</str>
        </lst>
    </requestHandler> 
    
    # 配置插件的配置文件
    touch solrhome/collection1/conf/data-config.xml
    # 添加
    <?xml version="1.0" encoding="UTF-8" ?>  
    <dataConfig>   
        <dataSource type="JdbcDataSource"   
        		  driver="com.mysql.jdbc.Driver"   
        		  url="jdbc:mysql://192.168.148.92:3306/lucene"   
        		  user="root"   
        		  password="root"/>   
        <document>   
        	<entity name="product" query="SELECT pid,name,catalog_name,price,description,picture FROM products ">
        		 <field column="pid" name="id"/> 
        		 <field column="name" name="product_name"/> 
        		 <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>
    
    
    mysql -u root -p
    use mysql;
    grant all privileges on *.* to 'root'@'%' identified by 'root' with grant option;
    flush privileges; 
    

    使用

    配置

    applicationContext-solr.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
    	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"
    	xmlns:context="http://www.springframework.org/schema/context"
    	xmlns:solr="http://www.springframework.org/schema/data/solr"
    	xsi:schemaLocation="http://www.springframework.org/schema/data/solr 
      		http://www.springframework.org/schema/data/solr/spring-solr-1.0.xsd
    		http://www.springframework.org/schema/beans 
    		http://www.springframework.org/schema/beans/spring-beans.xsd
    		http://www.springframework.org/schema/context 
    		http://www.springframework.org/schema/context/spring-context.xsd">
    	 
    	<!-- solr服务器地址 -->
    	<solr:solr-server id="solrServer" url="http://192.168.63.128:8080/solr" />
    
       
    	<!-- solr模板,使用solr模板可对索引库进行CRUD的操作 -->
    	<bean id="solrTemplate" class="org.springframework.data.solr.core.SolrTemplate">
    		<constructor-arg ref="solrServer" />
    	</bean>
    </beans>
    

    使用

    @Autowired
    private SolrTemplate solrTemplate;
    
    solrTemplate.saveBeans(items);
    solrTemplate.commit();
    
  • 相关阅读:
    Cordova 配置文件
    Mac 配置gradle环境变量
    React实现TabBar切换,带动画效果
    【Mac】基于Android Studio搭建cordova开发环境
    Spring之IOC控制反转
    Spring Boot笔记三:Spring Boot之日志
    Spring Boot笔记二:Spring Boot配置文件
    java的代理机制
    Spring Boot笔记一:Spring Boot入门
    Spring Boot笔记
  • 原文地址:https://www.cnblogs.com/birdofparadise/p/10013139.html
Copyright © 2011-2022 走看看