Windows 下solr6.4.1连接数据库,新建索引、简单查询。

来源:互联网 发布:linux vi 定位到最后 编辑:程序博客网 时间:2024/05/21 19:35

索引是solr非常重要的概念,solr查询数据库后把查询结果进行索引,才能达到提高搜索效率的效果。

下面介绍如何配置数据库进行数据查询:

第一步:solr-home/recipe(你的core名称,参考上一篇文章)\conf下面新建配置文件:db-data-config.xml,内如如下:

<dataConfig>    
    <dataSource type="JdbcDataSource" driver="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost:3306/operate?characterEncoding=utf-8" user="root" password="lok,.;pqasw2t5rfgy6"/>    
        <document name="documents">
        <entity name="documents" pk="id" query="SELECT UUID() id,r.id recipeId,r.name,r.content,r.iconPath,r.collectorCount,r.updateTime,r.publishTime,r.commentorCount,
        cg.group_id recipeType,rc.deviceModelId,
        ra.name auxiliary,ri.name ingredient 
        from mipot_recipe r LEFT JOIN mipot_recipe_group_content cg on cg.recipe_id = r.id 
        LEFT JOIN mipot_recipe_cookscript rc on rc.recipeId = r.id 
        LEFT JOIN mipot_recipe_auxiliary ra on ra.recipeId = r.id 
        LEFT JOIN mipot_recipe_ingredient ri on ri.recipeId = r.id 
        where r.state=2200 ORDER BY DATE_FORMAT(r.publishTime,'%Y-%m-%d') desc, r.collectorCount desc,r.commentorCount desc"> 
           
         <field column="id" name="id" />   
         <field column="recipeId" name="recipeId" />  
         <field column="name" name="name" />   
         <field column="content" name="content" />    
         <field column="iconPath" name="iconPath" />  
         <field column="collectorCount" name="collectorCount" />  
         <field column="updateTime" name="updateTime" />  
         <field column="commentorCount" name="commentorCount" />  
         <field column="publishTime" name="publishTime" /> 
         <field column="recipeType" name="recipeType" /> 
         <field column="deviceModelId" name="deviceModelId" /> 
         <field column="auxiliary" name="auxiliary" /> 
         <field column="ingredient" name="ingredient" /> 
       
        </entity>    
    </document>    
</dataConfig>   

dataSource节点用来配置链接的数据库驱动、url、账号、密码等信息;

entity 节点用来配置查询的主键(pk),查询sql(query);

field 节点与查询sql中需要查询的字段和managed-schema配置文件中的field 对应,下一章会详细介绍managed-schema。

第二步:修改同级目录下的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>

如果没有,就把上面这段粘贴复制到你solrconfig.xml里面。

第三步:在solrconfig.xml配置文件里搜索"<lib",会找到以下这段代码:

<lib dir="D:/soft/solr-6.4.1/contrib/extraction/lib" regex=".*\.jar" />
  <lib dir="D:/soft/solr-6.4.1/dist/" regex="solr-cell-\d.*\.jar" />
  <lib dir="D:/soft/solr-6.4.1/contrib/clustering/lib/" regex=".*\.jar" />
  <lib dir="D:/soft/solr-6.4.1/dist/" regex="solr-clustering-\d.*\.jar" />
  <lib dir="D:/soft/solr-6.4.1/contrib/langid/lib/" regex=".*\.jar" />
  <lib dir="D:/soft/solr-6.4.1/dist/" regex="solr-langid-\d.*\.jar" />
  <lib dir="D:/soft/solr-6.4.1/contrib/ltr/lib/" regex=".*\.jar" />
  <lib dir="D:/soft/solr-6.4.1/dist/" regex="solr-ltr-\d.*\.jar" />
  <lib dir="D:/soft/solr-6.4.1/contrib/velocity/lib" regex=".*\.jar" />
  <lib dir="D:/soft/solr-6.4.1/dist/" regex="solr-velocity-\d.*\.jar" />

上面的“D:/soft/solr-6.4.1/”solr自带的是${solr.instaill/.././../},这个路径是错误的,如果不修改你本地的路径,启动的时候会报错!

  


做完上面的三步已经配置好数据库。下面的链接是创建索引的url:

http://localhost:8080/solr/recipe/dataimport?command=full-import

用浏览器打开后,会报错org.apache.solr.common.SolrException: Error loading class 'com.mysql.jdbc.Driver',这时你在第三步加上一句:

<lib dir="D:/soft/solr-6.4.1/server/lib/" regex="mysql-connector-java-5.1.38.jar" />

mysql-connector-java-5.1.38.jar你可以网上下载,要符合你mysql的版本。

再次浏览:http://localhost:8080/solr/recipe/dataimport?command=full-import创建索引,没有意外的话可以创建成功!


访问:http://localhost:8080/solr/index.html的solr后台,左侧菜单点击core admin 然后在左侧菜单最下面有个下拉框:core selector 选择你的core,可以做一些查询操作,如下图:





注:solr的查询、索引等操作可以使用reset风格的url进行操作:

创建索引:http://localhost:8080/solr/recipe/dataimport?command=full-import

查询:http://localhost:8080/solr/recipe/select?indent=on&q=*:*&wt=json,查询的语法,我会在以后的章节进行详细介绍。


0 0
原创粉丝点击