`

solr运行步骤

 
阅读更多

一,安装

 

1,下载solr 3.3.0,解压缩

2,将\apache-solr-3.3.0\example\webapps\solr.war放到\tomcat\Tomcat6-2\webapps下解包.生成名字为solr的工程.

 

3,在\tomcat\conf\Catalina\localhost文件夹下,创建solr.xml(对应webapps下的solr工程),xml文件内容为

<Context  debug="0" crossContext="true" >    
  <Environment name="solr/home" type="java.lang.String" value="C:/web/solr" override="true" />  
</Context>  
 

指定了solr.home为C:/web/solr...tomcat启动后会在这个路径solr.home/conf下加载相关配置文件

 

4,\apache-solr-3.3.0\example\solr下的文件复制到solr.home中(即C:/web/sol下)

 

5,访问http://localhost:8080/solr/admin/如果出现页面,表明部署成功.点击search按钮可以看到服务器的回应


<?xml version="1.0" encoding="UTF-8"?>
<response>

<lst name="responseHeader">
  <int name="status">0</int>
  <int name="QTime">0</int>
  <lst name="params">
    <str name="indent">on</str>
    <str name="start">0</str>
    <str name="q">*:*</str>
    <str name="rows">10</str>
    <str name="version">2.2</str>
  </lst>
</lst>
<result name="response" numFound="0" start="0"/>
</response>
 

 

由于没有建索引,而且页面不支持中文参数,所以暂时无法进行有意义的测试

 

 

二,中文分词

 

lucene在升级到3.0之后改变了api,而目前流行的中文分词器中,有些并没有同步更新,于是选择了IKAnalyzer3.2.5.安装步骤:

 

1,下载IKAnalyzer3.2.5Stable_bin.zip,解压缩.将IKAnalyzer3.2.5Stable.jar导入工程.然后在solr.home/conf(即C:/web/solr/conf)下找到schema.xml,加入如下代码----这段代码定义了text类型,以及处理方式,这个类型会在--第三部分,建立索引--中用到

 

	 <fieldType name="text" class="solr.TextField" positionIncrementGap="100">  
            <analyzer type="index">  
                <tokenizer class="org.wltea.analyzer.solr.IKTokenizerFactory" /> 
                <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" enablePositionIncrements="true" />  
                <filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="1" catenateNumbers="1" catenateAll="0" splitOnCaseChange="1" />  
                <filter class="solr.LowerCaseFilterFactory" />  
                <filter class="solr.EnglishPorterFilterFactory" protected="protwords.txt" />  
                <filter class="solr.RemoveDuplicatesTokenFilterFactory" />  
            </analyzer>  
            <analyzer type="query">  
            	
                <tokenizer class="org.wltea.analyzer.solr.IKTokenizerFactory" /> 
                
                <filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true" />  
                <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" />  
                <filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="0" catenateNumbers="0" catenateAll="0" splitOnCaseChange="1" />  
                <filter class="solr.LowerCaseFilterFactory" />  
                <filter class="solr.EnglishPorterFilterFactory" protected="protwords.txt" />  
                <filter class="solr.RemoveDuplicatesTokenFilterFactory" />  
            </analyzer>  
    </fieldType> 

 

2,访问http://localhost:8080/solr/admin/analysis.jsp,测试分词效果

 

 

三,建立索引

 

1,打开solr.home/conf/solrconfig.xml,加入如下代码----如果uri包含/dataimport,则用DataImportHandler处理

 

<requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler">

                     <lst name="defaults">

                          <str name="config">../db/conf/db-data-config.xml</str>     

                     </lst>

  </requestHandler>

   <str name="config">../db/conf/db-data-config.xml</str> ---指定数据库配置文件的位置

   之后将apache-solr-3.3\apache-solr-3.3.0\dist下的apache-solr-dataimporthandler-3.3.0.jar引入工程

 

2,新建db-data-config.xml(路径和名称要符合上面的配置),加入如下代码

 

<?xml version="1.0" encoding="UTF-8" ?>
<dataConfig>  
        <dataSource type="JdbcDataSource" driver="com.mysql.jdbc.Driver" url="jdbc:mysql://192.168.110.112:3396/laws_and_regulations" user="root" password="123456"/>  
    		<document name="documents">  
            <entity name="documents" pk="id" query="select id,title,content,publishtime,validtime,category1,category2,invalidtime,publishorg from laws_and_regulations WHERE '${dataimporter.request.command}' != 'delta-import' OR last_modified > '${dataimporter.last_index_time}' limit ${dataimporter.request.offset},${dataimporter.request.length}">  
         <!--   <field column="id" name="id" /> 
            <field column="title" name="title" />  
            <field column="content" name="content" />           
            <field column="publishtime" name="publishtime" /> 
            <field column="validtime" name="validtime" /> 

            <field column="category1" name="categor1" /> 
            <field column="category_2" name="categor2" /> 
            <field column="invalidtime" name="invalidtime" /> 
            <field column="publishorg" name="publishorg" /> 
      -->
        </entity>  
    </document>  
</dataConfig> 

 1)dataSource指定数据源

 2)document name作用不明

 3)查询语句中where后面的语句用于判断是否进行增量索引(待续),limit限制索引条目数,防止outofmemory错误.

 4)注释掉的部分,column属性匹配数据库字段名称,name属性在schema中定义(见第三步),如果column和name相同,可以省略这个配置

 

3,打开solr.home/conf/schema.xml,把如下代码添加到<fields>标签内

 

 <field name="title" type="text" indexed="true" stored="true" multiValued="true"/>
   <field name="category1" type="text" indexed="true" stored="true"/>
   <field name="category2" type="text" indexed="true" stored="true"/>
   <field name="content" type="text" indexed="true" stored="true" multiValued="true"/>
   <field name="publishtime" type="long" indexed="true" stored="true"/>
   <field name="validtime" type="long" indexed="true" stored="true"/>
   <field name="invalidtime" type="long" indexed="true" stored="true"/>
   <field name="publishorg" type="text" indexed="true" stored="true"/>

 name匹配步骤2中的name,type在schema.xml文件靠前的位置定义.由于我们在第二部分:中文分词中已经定义了text,并加入了中文分词器,所以将title,content这种需要中文检索的字段的type指定为text

 

 

4,访问http://localhost:8080/solr/dataimport?command=full-import&clean=true&offset=0&length=10000&indent=on

   1)dataimport触发DataImportHandler

2)command=full-import表示全部索引

   3)clean=true删除原来的所以,默认为true

   4)offset和length对应db-data-config.xml中的查询语句,默认JVM设置下length=20000就会导致outofmemory

   如果出现回应

 

<?xml version="1.0" encoding="UTF-8"?>
<response>

<lst name="responseHeader">
  <int name="status">0</int>
  <int name="QTime">0</int>
</lst>
<lst name="initArgs">
  <lst name="defaults">
    <str name="config">../db/conf/db-data-config.xml</str>
  </lst>
</lst>
<str name="command">full-import</str>
<str name="status">busy</str>
<str name="importResponse">A command is still running...</str>
<lst name="statusMessages"/>
<str name="WARNING">This response format is experimental.  It is likely to change in the future.</str>
</response>

 

   表示执行成功,线程正在建立索引,status为busy.,此时再次刷新页面可以看到当前消耗的时间,处理的文档数等

 

   同时后台输出日志

 

 

   出现time taken = xx:xx:xx  意味着索引结束

 

   刷新页面后可以看到status变成了idle.

 

   在常见索引的过程中solr.home下会出现一个data文件夹,来存储索引.索引格式可参考http://forfuture1978.iteye.com/blog/546824

 

 

5,访问http://localhost:8080/solr/admin/输入查询语句,例如title:2007(表示在title字段中匹配含有2007的条目),点击search后可以看到返回结果,测试中部分结果如下

<?xml version="1.0" encoding="UTF-8"?>
<response>

<lst name="responseHeader">
  <int name="status">0</int>
  <int name="QTime">0</int>
  <lst name="params">
    <str name="indent">on</str>
    <str name="start">0</str>
    <str name="q">title:2007</str>
    <str name="rows">10</str>
    <str name="version">2.2</str>
  </lst>
</lst>
<result name="response" numFound="27" start="0">
  <doc>
    <str name="category1">中国法规规章库</str>
    <str name="category2">医药卫生</str>
    <arr name="content"><str>药品注册管理办法(2007年)

(国家食品药品监督管理局令第28号)




  《药品注册管理办法》于2007年6月18日经国家食品药品监督管理局局务会审议通过,现予公布,自2007年10月1日起施行。

                                                局长:邵明立
                                             二○○七年七月十日
 

---------------------------------------------------------未完待续---------------------------------------------------------------

分享到:
评论

相关推荐

    SOLR搭建企业搜索平台

    主要介绍了如和用solr搭建搜索平台的详细步骤,同时对配置文件进行了详细介绍。 运行容器:Tomcat6.0.20 Solr版本:apache-solr-1.4.0 分词器:mmseg4j-1.6.2 词库:sogou-dic

    solr-plugin-admin-handlers:启用多个 CoreAdminHandlers 的 Solr 插件

    相反,它管理在单个 Solr 实例中运行的所有内核。 每个顶级 Solr 实例只存在一个 CoreAdminHandler。但是,如果您想要在 Solr 实例中使用多个CoreAdminHandler插件怎么办? 这个插件可以提供帮助。安装将放入shared...

    java8看不到源码-ef-solr-08052016:ef-solr-08052016

    机器是否正在运行 $ vagrant status 步骤#8 登录 Vagrant 机器 $ vagrant ssh 步骤#9 Apache Solr 主页: - 获取 tarball 步骤#10 安装 Java8 - sudo apt-get install python-software-properties software-...

    solr-tmdb:Solr中的TheMovieDB

    启动和运行的步骤: 下载此仓库安装Solr搜索引擎和配置(使用Docker或手动安装) 索引TMDB电影数据确认Solr有数据安装邮递员(可选)下载此仓库从下载zip文件,您将获得solr-tmdb-master.zip文件。 解压缩该文件,...

    solrcloud部署文档.docx

    最新的solrcloud部署文档,简单明了,计算机小白看了文档都能安装solr云服务。文档详细说明了solr运行原理和安装部署的每一个步骤,本人多次部署,没有失败过!

    java种菜源码-solrmeter:ApacheSolr压力测试工具

    java种菜源码太阳能表 ...应遵循以下步骤来启动和运行 SolrMeter。 图形用户界面 下载最新发布的版本 使用java -jar solrmeter-{version}-jar-with-dependencies.jar从命令行运行它 创建包含 、 和 信息的

    solr-geonames

    因此,安装过程分为两个步骤: :需要(至少一次)构建索引数据,并且您可以使用它来运行简单的开发服务器。 进行部署:是将结果数据和WAR文件部署到现有服务器的示例。 一些其他背景信息/文档: 正在运行的系统上...

    bill-manager:AngularJS,Springboot,Solr,MySQL docker系统来管理每月支出

    票据经理Angular客户端和Springboot api应用程序通过MySQL后端和Solr提供的搜索来管理每月费用/收入安装步骤安装 确保将要运行docker的用户位于docker组中。 在此示例中,用户名是vmusersudo usermod vmuser -a -G ...

    开源中国源码

    - 由于数据库内容被我清空了,有时候我上传的solr里的数据我可能没清空,导致首页及频道页面查询不到数据会报错,解决方法:运行solr前进入`E:\solr\server\solr\info\data` 目录下删除里面的三个文件夹即可,后期会...

    banana-node:带有 Node.js 服务器的 Banana 版本

    香蕉节点 Banana 项目是从 Kibana 派生出来的,适用于...要运行 Banana,请按照以下步骤操作: 安装 Node.js sudo apt-get install python-software-properties python g++ make sudo add-apt-repository ppa:chris-

    ansible-alfresco:Ansible项目示例,展示了一种自动执行Alfresco服务器安装和配置管理的方法

    以下是在使用Ansible运行任何剧本之前需要执行的高级步骤: 设置SSH密钥 将此项目克隆到本地计算机。 编辑清单文件。 将您的Alfresco和SOLR主机添加到适当的组。 Alfresco和SOLR机器相同也可以。 编辑刚才在清单...

    UniDisk:爬行者搜索关键字并比较得分

    优盘爬行者搜索关键字并比较得分安装先决条件Java 8 玛文Tomcat 8.X IntelliJ Ultimate(首选)Primefaces的安装步骤搭建神器mvn安装MVN测试与tomcat和神器之战一起运行码头工人我们使用Docker简化开发。 运行docker...

    docsolr:圣保罗官方公报搜索系统

    当前在这里运行: : 安装要启动并运行此应用程序,请按照下列步骤操作: 安装Ruby on Rails 为了开发该应用程序,使用了以下软件版本: Ruby版本:2.1.2 Rails版本:4.1.2 设定值创建一个包含此存储库所有内容的...

    ckan-cloud-docker:用于本地开发和测试Ckan-cloud的Docker映像和组合环境

    CKAN Cloud Docker 包含适用于CKAN Cloud不同组件的Docker imgages和...运行并遵循所有步骤: ./create_secrets.py 使用docker-compose环境运行CKAN实例 (可选)清除任何现有的撰写环境,以确保重新开始 docker-compo

    blog-sortminmax-perf:与对单值(长)字段进行排序的性能比较与对SOLR-2522中添加的2 arg“字段”函数进行排序的性能比较

    博客-sortminmax-perf 与对单值(长)字段进行排序的性能比较与对添加的2 arg“ field”函数进行排序的性能比较(已修复的错误)。由包括的脚本在“ multi_1”...) 显示了创建数据和运行各种测试所采取的步骤。 它应包

    docker-apache-atlas:该Apache Atlas由最新发行版的tarball构建而成,并进行了修补以在Docker容器中运行

    Atlas是使用embedded HBase + Solr构建的,并且已预先初始化,因此您可以在图像下载后立即使用它,而无需执行其他步骤。 如果要使用外部Atlas后端,请根据。 基本用法 拉最新的发布映像: docker pull sburn/...

    PigExtend:Apache Pig+MapReduce给LuceneSolrElasticSearch构建索引

    ####使用步骤 (1)下载源码后,根据自己的业务情况,稍作修改,然后重新build,成一个jar包 (2)上传至pig脚本同级目录 (3)在脚本注册jar包,方便在MR程序运行时,能够加载到相关的依赖 ####如何给Lucene构建...

    ontologies_api:用于NCBO本体相关项目的Hypermedia API

    ontologies_api 用法 分支该项目,创建一个分支,然后根据需要进行自定义。 其中包含几个类,这些类使您了解如何使用...以下是在命令行上运行以获取代码,获取依赖项,运行测试然后运行应用程序的步骤: git clone

    pantheon:万神殿上PHPwomen网站

    WordPress的 这是一个配置为在上运行的WordPress存储库。 Pantheon是经过优化的网站平台,并配置为运行具有令人赞叹的开发人员工作... 您需要完成的唯一步骤是站点信息,安装过程将完成。 我们将发布有关其工作原理

    creative-south

    WordPress的 这是一个配置为在上运行的WordPress存储库。 Pantheon是经过优化的网站平台,并配置为运行具有令人赞叹的开发人员工作... 您需要完成的唯一步骤是站点信息,安装过程将完成。 我们将发布有关其工作原理

Global site tag (gtag.js) - Google Analytics