Skip to content

A Demo for Apache Solr, you can get something by searching from this Server.

License

Notifications You must be signed in to change notification settings

DHJT/solrServer

Repository files navigation

solrServer

A Demo for Apache Solr, you can get something by searching from this Server.

GitHub

环境

  • 开发工具:Eclipse;
  • 数据库:MariaDb;
  • Java代码SolrJ操作(6.6.0版本)
  • Solr升级(7.5.0版本) 2018-10-31
    • 版本分支v7-1.0
    • 参考文章[CentOS7搭建solr7.2][1]

使用

添加动态加载字典表功能;

ik.conf文件说明:

files=dynamicdic.txt
lastupdate=0
  • files为动态字典列表,可以设置多个字典表,用逗号进行分隔,默认动态字典表为dynamicdic.txt
  • lastupdate默认值为0,每次对动态字典表修改后请+1,不然不会将字典表中新的词语添加到内存中。
    • lastUpdatelong类型,可以用时间戳(2018-08-23, 之前版本不可用)
  • 测试可以在http://127.0.0.1:8080/solrServer/index.html#/demo/schema?field=author页面中进行,Analyse
    • 本测试用例author字段使用了ik中文分词,可以在demo核心下,Analysis中进行测试

修改核心名称

每一个核心下有一个配置文件core.properties,修改name属性的值即可修改该SolrCore的名称。

  • 在多项目中可以使用同一个solr服务器,只需要为每个项目建立不同的solr核心即可,这样可以避免每个项目配置相互影响。

现场部署

  1. 获取所需的solr服务地址:http://localhost:8080/solr/
  2. 修改solr服务器中web.xml<env-entry-value>的值,指定Solr核心存放的位置:C:/Workspaces/QRwork/solr/WebRoot/solrhome
  3. 只提供查询服务,修改solr服务器中web.xml使用web.single.xml,src下的源码可以删除(其他文件要保留);如果要集成SolrJ查询并提供接口,或者将solr集成进现有服务,需要使用到'web.servlet.xml',具体操作还是要根据实际情况进行修改。
  4. li_user_collect_201810182013.sql,该文件是本demo的测试数据。

创建核心

  • 启动:'solr.cmd start'
  • 使用命令:C:\DEVELOPERS\Apache Solr\solr-6.4.1\bin\solr.cmd create -c item -d basic_configs
  • 停止:solr.cmd stop -all

移植/复用核心

  • 可直接复制某个核心到其他solr服务上,服务重启后,可直接使用
    • 保证没有同名的solrCore,若有则需修改核心名。
    • 也可以复制到本Solr服务上,但须修改核心名。

配置

建立实体Bean索引的配置

  • jar包考虑导入
  • 实体Bean中加上Solr的@Field注解
  • managed-schema配置文件
    • 加入中文分词器IKTokenizer
      • 导入相应的jar包
      • 编写配置文件'IKAnalyzer.cfg.xml'
      • 添加自己的扩展词和停止词
    • 配置与实体Bean对应的字段属性
      • 例:<field name="archiveTypeId" type="text_general" indexed="true" stored="true"/>
<!-- 添加中文分词器IKTokenizer -->
<fieldType name="text_zh" class="solr.TextField" >
  <analyzer type="index" >
      <tokenizer class="org.wltea.analyzer.lucene.IKTokenizerFactory" useSmart="false" conf="ik.conf"/>
      <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" />
  </analyzer>
  <analyzer type="query">
      <tokenizer class="org.wltea.analyzer.lucene.IKTokenizerFactory" useSmart="false" conf="ik.conf"/>
      <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" />
  </analyzer>
</fieldType>

word、excel、PDF等文档索引配置

  • 创建新核心或者直接复制已存在的SolrCore
  • jar导入位置(core1是Solr核心)
    • 将\solr-5.5.4\solr-5.5.4\contrib\extraction下的jar包复制到\solr_home\core1\lib(目录不存在就新建一个)下
    • 将\solr-5.5.4\solr-5.5.4\dist下的solr-cell-5.5.4.jar复制到\solr_home\core1\lib下
    • 注:也可以把相关jar包放到项目的WEB-INF\lib文件夹下
  • managed-schema配置文件
    • 添加字段属性:
      • <field name="path" type="string" indexed="true" stored="true" multiValued="false" />
      • <field name="pathftype" type="string" indexed="true" stored="true" multiValued="false" />
      • <field name="pathuploaddate" type="string" indexed="true" stored="true" multiValued="false" />
      • <field name="pathsummary" type="string" indexed="true" stored="true" multiValued="false" />
      • <field name="attr_content" type="text_general" indexed="true" stored="true" multiValued="false" />
    • 中文分词器
  • solrconfig.xml配置文件
    • 配置jar包位置:<lib dir="./lib" regex=".*\.jar" />
    • 配置ExtractingRequestHandler
    <!-- solr索引文档配置 -->
  <requestHandler name="/update/extract"
    startup="lazy"
    class="solr.extraction.ExtractingRequestHandler">
    <lst name="defaults">
      <str name="fmap.content">text</str>
      <str name="fmap.meta">ignored_</str>
      <str name="lowernames">true</str>
      <str name="uprefix">attr_</str>
      <str name="captureAttr">true</str>
    </lst>
  </requestHandler>

参考链接

About

A Demo for Apache Solr, you can get something by searching from this Server.

Resources

License

Stars

Watchers

Forks

Packages

No packages published