• solr6.1-----mysql 数据导入-查询


    此部分一定要细心,lz 中间错了一个细节,调了好长时间(汗)。请严格按照步骤操作

    新建core

    步骤1:

        在webapps中solrhome下新建一个文件夹名字叫做collection1(名字不固定,可以随便取,但是这个名字在后面的配置中会有所关联。)然后在mynode文件下新建一个名字叫做conf的文件夹(这个文件名字最后不要改。)然后把官网下下来的solr项目中solr-6.0.0serversolrconfigsetsdata_driven_schema_configsconf下的所有东西复制到conf中去。(注意不要复制错!)最后把solr-6.0solr-6.0.0exampleexample-DIHsolrdbconf下的admin-extra.html, admin-extra.menu-bottom.html ,admin-extra.menu-top.html三个文件也复制到conf中去。

    步骤2:

      把mysql所需的jar包和solr-6.0solr-6.0.0dist下的solr-dataimporthandler-6.0.0.jar和solr-dataimporthandler-extras-6.0.0.jar都复制到项目WEB-INFlib下。

      然后添加mysql 数据库驱动包到此lib文件夹下面。

    步骤3:

      新建数据库solr_test,已经表goods

      

    步骤4:修改collection1 下面conf 文件夹下面的 solrconfig.xml。 这里我们采用 多模块的方法 (便于维护)

      在<requestHandler name="/select" class="solr.SearchHandler"> 上面添加  配置

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

      

      然后在此目录下面 新建文件 data-config.xml , 内容如下

    <dataConfig>
      <dataSource type="JdbcDataSource"
                  driver="com.mysql.jdbc.Driver"
                  url="jdbc:mysql://127.0.0.1:3306/test_solr"
                  user="root"
                  password="root"/>
      <document>
        <entity name="contract" query="select id, name from goods">
            <field column = "id" name= "id" />        
            <field column = "name" name = "name" />
        </entity>
      </document>
    </dataConfig>
    

      

    步骤5:启动tomcat 点击core admin 然后添加add core 输入框中添加刚刚配置的collection1

      

      

     步骤6:

       在下面的select框中选择collection1 ,然后选择dataimport, entity中选择contract。 点击excute 按钮,即可将数据库中的数据导入到solr中

      

      步骤7:

       在qurey 选项卡下面,点击excute query。 可以 将导入的数据全部查询出来

    Analysis  可以查看当前索引库中字段的列表,已经分词效果。

      

      域、字段列表: 所有的域都是定义在schema.xml 配置文件中。

       Documents 索引库的维护功能。可以对索引进行增删改操作。

       添加(使用json){"id":"a001","name":"tanjian"}  //key (域、字段) ,value(值)

       在solr 中一个document 就是一条记录(一条数据)

       在solr中 每一个文档必须要有一个id域,类似关系型数据库中的主键

       删除文档(使用xml):<delete><id>a001</id></delete><commit />

      *:* 代表查询所有

      <delete><query>*:*</query></delete><commit />  //删除所有

      <delete><query>id:a001</query></delete><commit />  //删除所有

       query 查询

      q: 查询条件 (*:*) 查询所有的文档  (这里查询必须是完全匹配,只有域和值完全匹配才能查处结果)

      fq:过滤条件,查询语法和查询条件完全相同

      sort : 排序条件

      start,rows : 分页条件

      fl : 返回结果中域的列表,如果不写(查询所有的字段)

      df : 默认搜索域

      hl : 高亮显示

      hl.fl : 高亮显示的域

      hl.simple.pre : 高亮显示的前缀

      hl.simple.post : 高亮显示的后缀

     至此(solr的后台管理),通过此种方式的,mysql 数据导入solr 服务器 完成。在solr中 域必须是先定义,后使用

      

    参考:

    http://blog.csdn.net/linzhiqiang0316/article/details/51464461

  • 相关阅读:
    【动画】看动画轻松理解「Trie树」
    浅析HTTP/2的多路复用
    HTTPS 详解
    PHP写时复制(Copy On Write)
    golang 几种字符串的拼接方式
    正排索引和倒排索引简单介绍
    传值还是传引用
    lvs与nginx区别
    Docker运行操作系统环境(BusyBox&Alpine&Debian/Ubuntu&CentOS/Fedora)
    原创-thanos组件(聚合多个prometheus组件)原理介绍
  • 原文地址:https://www.cnblogs.com/chihirotan/p/5793304.html
Copyright © 2020-2023  润新知