Windows配置solr

来源:互联网 发布:java输出正三角形 编辑:程序博客网 时间:2024/06/14 21:38

环境

solr的文件可以在http://archive.apache.org/dist/lucene/solr/下载,我选择的是5.5.2,后面的版本ik分词器不支持了,ik分词器可以在https://github.com/EugenePig/ik-analyzer-solr5下载

配置

  • 下载完成后解压压缩包,将目录下的server\solr-webapp文件夹下的webapp文件夹复制到tomcat的webapps目录下,为了方便访问把solr的那个webapp目录换成solr
  • 然后在tomcat/webapps/solr/WEB-INF目录下创建classes目录,将solr主目录下的server\resources里面的log4j的配置文件复制进去。再将solr主目录下\server\lib\ext中的全部jar导入到tomcat/webapps/WEB-INF/lib中。
  • 接下来是创建solrhome和solrcore,solrhome是存放solrcore的目录,在一个地方创建一个文件夹作为solrhome,在tomcat/webapps/solr/WEB-INF的web.xml文件中添加以下配置
<env-entry>    <env-entry-name>solr/home</env-entry-name>    <env-entry-value>D:\solr\solrhome</env-entry-value>    <env-entry-type>java.lang.String</env-entry-type></env-entry>
  • 在solrhome目录下创建solrcore目录,将solr主目录下的server\solr\configsets\sample_techproducts_configs文件夹下的conf文件夹全部复制到创建的solrcore中,再将solr主目录下server\solr\中的solr.xml复制到solrhome目录下。
  • 此时启动tomcat,在浏览器输入http://localhost:8080/solr/admin.html就会进入管理界面,点击core selector就可以看见你配置的solrcore了,名字就是你文件夹的名字,点进去后可以看见相应操作。
    1. overview可以看见此core的相关信息
    2. analysis可以测试索引分析器和搜索分析器的执行情况
    3. dataimport可以定义数据导入处理器,从关系数据库将数据导入Solr索引库中。默认没有配置,需要手工配置
    4. document通过/update表示更新索引,solr默认根据id(唯一约束)域来更新Document的内容,如果根据id值搜索不到id域则会执行添加操作,如果找到则更新。
    5. query是搜索的界面
      5.1. q - 查询关键字,必须的,如果查询所有使用:
      5.2. fq - (filter query)过虑查询,作用:在q查询符合结果中同时是fq查询符合的
      5.3. sort - 排序,格式:sort=名字+desc|asc,名字2+desc|asc…..
      5.4. start - 分页显示使用,开始记录下标,从0开始
      5.5. rows - 指定返回结果最多有多少条记录,配合start来实现分页。实际开发时,知道当前页码和每页显示的个数最后求出开始下标。
      5.6. fl - 指定返回那些字段内容,用逗号或空格分隔多个
      5.7. df-指定一个搜索Field,也可以在SolrCore目录 中conf/solrconfig.xml文件中指定默认搜索Field,指定后就可以直接在“q”查询条件中输入关键字。
      5.8. wt - (writer type)指定输出格式,可以有 xml, json, php, phps,。
      5.9. 是否高亮 ,设置高亮Field,设置格式前缀和后缀。
  • solr默认是没有中文分词器的,需要手动导入ik分词器的jar和在配置文件中修改,将ik的jar复制到tomcat/webapps/solr/WEB-INF/lib中。将ik分词的扩展配置加到tomcat/webapps/solr/WEB-INF/classes中,然后在打开solrcore的conf文件夹下的managed-schema文件,添加如下配置
<fieldType name="text_ik" class="solr.TextField">        <analyzer type="index" useSmart="false" class="org.wltea.analyzer.lucene.IKAnalyzer" />        <analyzer type="query" useSmart="true" class="org.wltea.analyzer.lucene.IKAnalyzer" /></fieldType>
  • 接下来是配置dataimport,将solr的主目录下/dist/solr-dataimporthandler-5.5.2.jar复制到tomcat/webapps/solr/WEB-INF/lib中,同时导入数据库驱动。在solrcore目录下的conf中创建data-config.xml。配置书库库信息
<dataConfig>    <!-- 这是mysql的配置 -->    <dataSource type="JdbcDataSource"                driver="com.mysql.jdbc.Driver"                url="jdbc:mysql://localhost:3306/solr?useUnicode=true&characterEncoding=UTF-8"                user="root"                password="root"/>    <document>        <!-- name属性,就代表着一个文档,可以随便命名 -->        <!-- query是一条sql,代表在数据库查找出来的数据 -->        <entity name="test" query="select * from products">            <!-- 每一个field映射着数据库中列与文档中的域,column是数据库列,name是solr的域(必须是在managed-schema文件中配置过的域才行) -->            <field column="id" name="id"/>            <field column="name" name="name"/>        </entity>    </document></dataConfig>

然后修改solrcore目录下conf中的solrconfig.xml,添加以下字段

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

重启tomcat后进入管理界面点击dataimport已经可以进去那个界面了,但是我点击execute会报错,cannot read property length of null不知道为什么。

原创粉丝点击