zoukankan      html  css  js  c++  java
  • Solr学习笔记2(V7.2)---导入自己的数据

    学而不思则罔,思而不学则殆,总是看文档不动手效果是不好的。没有实地的从自己的数据库获取数据测试一下始终是空,总结一下自己的操作步骤吧。

    第一步准备配置文件

      E:Solrserversolrconfigsets\_defaultconf放置一个数据结构文件db-data-config.xml,内容如下

    <dataConfig>
        <dataSource driver="com.microsoft.sqlserver.jdbc.SQLServerDriver" url="jdbc:sqlserver://127.0.0.1:1433;databaseName=szjy" user="sa" password="sasa" />
        <document>
            <entity name="orders" pk="id" query="select id,order_no,accept_name,address,add_time from dt_orders"
                    deltaImportQuery="select id,order_no,accept_name,address,add_time from dt_orders"
                    deltaQuery="select id from dt_orders where add_time > '${dataimporter.last_index_time}'">
                <field column="id" name="id" />
                <field column="order_no" name="order_no" />
                <field column="accept_name" name="accept_name" />
                <field column="address" name="address" />
                <field column="add_time" name="add_time" />
            </entity>
        </document>
    </dataConfig>
    View Code

    conf目录下修改solrconfig.xml文件,用于数据导入的处理程序,增加如下配置:

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

    conf目录下修改managed-schema文件,创建数据类型(用中文分析器)增加如下配置:

    <!-- ChineseAnalyzer -->
        <fieldType name="solr_cnAnalyzer" class="solr.TextField" positionIncrementGap="100">
          <analyzer type="index">
            <tokenizer class="org.apache.lucene.analysis.cn.smart.HMMChineseTokenizerFactory"/>
          </analyzer>
          <analyzer type="query">
            <tokenizer class="org.apache.lucene.analysis.cn.smart.HMMChineseTokenizerFactory"/>
          </analyzer>
        </fieldType>
    View Code

    第二部拷贝jar文件

     

    还有mssql驱动

    将如上文件考入E:Solrserversolr-webappwebappWEB-INF下

    第三步启动solr并创建集合

      此时用于生产环境,而不是example了。Windows系统命令:E:Solrin>solr.cmd start -c  其中-c代表cloud模式,默认服务目录为Solrserver,设置 Solrserverhome 系统属性;Solr 将在这个目录下创建核心目录。

    可以通过命令创建集合:E:Solrin>solr.cmd create -c orders,也可以打开浏览器http://localhost:8983/solr/ 通过窗口创建集合。

    第四步创建架构:

    第五步导入数据:

    第六步查询测试:按字段查询(如果不想按照自动查询需要创建复制自动,但是这会增加索引文件等一些成本)+高亮显示

     

     查询结果如下

     

     也可以用C#代码查询,本质就是调用solr应用提供的服务(一般可能用java+solr驱动查询,注意URL和返回内容的编码和解码):

     public ActionResult GetSolrData()
            {
                HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create("http://localhost:8983/solr/orders/select?q=%E5%B7%A5%E4%B8%9A%E5%9B%AD%E5%8C%BA&rows=2&start=5");
                request.ContentType = "application/json";
                request.Accept = "application/json,text/javascript,*/*,q=0.01";
                request.Headers.Add("Accept-Encoding", "deflate,gzip");
                request.AutomaticDecompression = DecompressionMethods.Deflate | DecompressionMethods.GZip | DecompressionMethods.None;
    
                using (Stream stream = request.GetResponse().GetResponseStream())
                {
                    StreamReader sr = new StreamReader(stream);
                    string str = sr.ReadToEnd();
                }
    
                //WebClient wcl = new WebClient();
                //string strval = wcl.DownloadString("http://localhost:8983/solr/orders/select?q=%E5%B7%A5%E4%B8%9A%E5%9B%AD%E5%8C%BA&rows=2&start=5");
    
                return View();
            }
    View Code

      

  • 相关阅读:
    【POJ】3243 Clever Y
    【BZOJ】3916: [Baltic2014]friends
    【URAL】1960. Palindromes and Super Abilities
    【BZOJ】3621: 我想那还真是令人高兴啊
    【BZOJ】2286: [Sdoi2011消耗战
    【POJ】2891 Strange Way to Express Integers
    鬼畜的多项式
    【CF】438E. The Child and Binary Tree
    【BZOJ】3456: 城市规划
    【POJ】1811 Prime Test
  • 原文地址:https://www.cnblogs.com/brainthink/p/8242613.html
Copyright © 2011-2022 走看看