本文只是Solr 4.0的基础教程,本人不经常写东西,写的不好请见谅,欢迎到群233413850进行讨论学习。

转载请标明原文地址:http://my.oschina.net/zhanyu/blog/86147

先说一点部署之后肯定会有人用solrj,solr 4.0好像添加了不少东西,其中CommonsHttpSolrServer这个类改名为HttpSolrServer,我是找了半天才发现,大家以后可以注意。

部署前准备:

  • Solr 4.0 必须运行在Java1.5 或更高版本的Java 虚拟机中,运行标准Solr 服务只需要安装JRE 即可。
  • Solr 4.0 :  http://www.apache.org/dyn/closer.cgi/lucene/solr/4.0.0
  • 本文以Tomcat7.0  进行演示。
  • 如果出现错误无法运行,请更换更高版本的JDK,Solr各版本支持JDK的版本不尽相同,可以查阅官方中各个版本的不同。

Solr 4.0 目录:

这里是我的部署方式,Tomcat安装好之后把apache-solr-4.0.0\example\webapps下的solr.war文件拷贝到Tomcat下的Tomcat7.0\webapps目录下,然后启动Tomcat 报错不用管,solr.war会自动解压,之后打开Tomcat7.0\webapps\solr\WEB-INF\web.xml,把下面代码复制进去放到后面:

1 <env-entry>
2    <env-entry-name>solr/home</env-entry-name>
3    <env-entry-value>E:\SolrHome</env-entry-value>
4    <env-entry-type>java.lang.String</env-entry-type>
5 </env-entry>

其中  E:\SolrHome  是存放solr配置文件等,修改为自己文件的位置,为了看着更清晰直观,你可以这样放:

E:\Tomcat7.0

E:\apache-solr-4.0.0

E:\SolrHome

现在可以重新启动Tomcat了,没有报错,通过这个地址进入Solr4.0页面:http://localhost:8080/solr

如果进入以上界面说明成功了,没有成功的话页面会有ERROR提示。

如图:左侧core0,core1等是solr 4.0中的示例,core0和core1位于apache-solr-4.0.0\example\multicore所有文件都下拷贝到E:\SoleHome下,core0和core1可以理解为两个库,都是独立的,用来存放索引以及生成这些索引文件所需要的配置文件,solrtest是我测试建立的目录,如图:

没添加一个库都需要在solr.xml里面进行配置,这个比较简单

1 <solr persistent="false">
2   <cores adminPath="/admin/cores" host="${host:}" hostPort="${jetty.port:}">
3     <core name="core0" instanceDir="core0" />
4     <core name="core1" instanceDir="core1" />
5     <core name="collection1" instanceDir="collection1" />
6     <core name="solrtest" instanceDir="solrtest"/>
7   </cores>
8 </solr>
1 name="",是库的名字,instanceDir="",是目录

每个目录下包含两个文件夹conf和data,data下有两个文件夹index和tlog,index是存放生成的索引文件,tlog存放log,conf下是必要的配置文件schema.xml和solrconfig.xml,可以参考官方或者core里面的配置文件:

01 <?xml version="1.0" ?>
02 <schema name="example
solr test"
 version="1.1">
03   <types>
04    <fieldtype name="string"  class="solr.StrField" sortMissingLast="true" omitNorms="true"/>
05    <fieldType name="long" class="solr.TrieLongField" precisionStep="0" positionIncrementGap="0"/>
06   </types>
07  
08  <fields>  
09   <!--
general -->
10   <field name="id" type="string" indexed="true" stored="true" multiValued="false" required="true"/>
11   <field name="type" type="string" indexed="true" stored="true" multiValued="false" />
12   <field name="name" type="string" indexed="true" stored="true" multiValued="false" />
13   <field name="_version_" type="long" indexed="true" stored="true"/>
14  </fields>
15  
16  <!--
field to use to determine and enforce document uniqueness. -->
17  <uniqueKey>id</uniqueKey>
18  
19  <!--
field for the QueryParser to use when an explicit fieldname is absent -->
20  <defaultSearchField>name</defaultSearchField>
21  
22  <!--
SolrQueryParser configuration: defaultOperator="AND|OR" -->
23  <solrQueryParser defaultOperator="OR"/>
24 </schema>

solrconfig.xml我还不是很懂,在这里就不讲了,但是必须配置(好像是必须配):

01 <?xml version="1.0" encoding="UTF-8" ?>
02 <!--
可以从core文件中copy过来 -->
03 <config>
04   <luceneMatchVersion>LUCENE_40</luceneMatchVersion>
05    
06   <directoryFactory name="DirectoryFactory" class="${solr.directoryFactory:solr.StandardDirectoryFactory}"/>
07  
08   <dataDir>${solr.solrtest.data.dir:}</dataDir>  
solr.solrtest.data.dir存放的是索引目录
09  
10   <updateHandler class="solr.DirectUpdateHandler2">
11     <updateLog>
12       <str name="dir">${solr.solrtest.data.dir:}</str>
13     </updateLog>
14   </updateHandler>
15  
16   <requestHandler name="/get" class="solr.RealTimeGetHandler">
17     <lst name="defaults">
18       <str name="omitHeader">true</str>
19     </lst>
20   </requestHandler>
21    
22   <requestHandler name="/replication" class="solr.ReplicationHandler" startup="lazy" />
23  
24   <requestDispatcher handleSelect="true" >
25     <requestParsers enableRemoteStreaming="false" multipartUploadLimitInKB="2048" />
26   </requestDispatcher>
27    
28   <requestHandler name="standard" class="solr.StandardRequestHandler" default="true" />
29   <requestHandler name="/analysis/field" startup="lazy" class="solr.FieldAnalysisRequestHandler" />
30   <requestHandler name="/update" class="solr.UpdateRequestHandler"  />
31   <requestHandler name="/admin/" class="org.apache.solr.handler.admin.AdminHandlers" />
32  
33   <requestHandler name="/admin/ping" class="solr.PingRequestHandler">
34     <lst name="invariants">
35       <str name="q">solrpingquery</str>
36     </lst>
37     <lst name="defaults">
38       <str name="echoParams">all</str>
39     </lst>
40   </requestHandler>
41  
42   <!--
config for the admin interface -->
43   <admin>
44     <defaultQuery>solr</defaultQuery>
45   </admin>
46  
47 </config>

之后在exampledocs目录下手动创建一个solr1.xml文件:

1 <?xml version="1.0" ?>
2 <add>
3   <doc>
4     <field name="id">solr1</field>
5     <field name="type">type1</field>
6     <field name="name">my
solr test</
field>
7   </doc>
8 </add>

跟schema.xml中的字段对应,好了现在可以提交数据了,这里在window命令窗口提交数据,把E:\apache-solr-4.0.0\example\exampledocs下的post.jar复制到 E:\SolrHome\exampledocs下

打开命令窗口CD 到E:\SolrHome\exampledocs下使用命令,Tomcat不要忘了开:

java -Durl=http://localhost:8080/solr/solrtest/update -Ddata=files -jar post.jar solr1.xml

如图成功的添加的索引,看下E:\SolrHome\solrtest\data\index下的文件:

进入solr页面:

点击Executu Query查询,右侧生成了地址可以打开查看,到此结束。

Solr 4.0 基础教程的更多相关文章

  1. Android程序开发0基础教程(一)

    程序猿学英语就上视觉英语网 Android程序开发0基础教程(一)   平台简单介绍   令人激动的Google手机操作系统平台-Android在2007年11月13日正式公布了,这是一个开放源码的操 ...

  2. ThinkPHP 6.0 基础教程 - 安装

    ThinkPHP6.0 的环境: PHP >= 7.1.0 我本地环境: Win10 PhpStudy 安装 PhpStudy 如果你已经安装 PhpStudy 或其他环境,请忽略这里 安装方法 ...

  3. Zabbix3.0基础教程之一:系统监控,zabbix安装与基本配置

    一.安装环境: 系统环境: 系统版本:CentOS Linux release 7.4.1708 (Core) 内核版本:3.10.0-693.el7.x86_64 关闭Firewall与SELinu ...

  4. SpringBoot2.0基础案例(01):环境搭建和RestFul风格接口

    一.SpringBoot 框架的特点 1.SpringBoot2.0 特点 1)SpringBoot继承了Spring优秀的基因,上手难度小 2)简化配置,提供各种默认配置来简化项目配置 3)内嵌式容 ...

  5. Solr 4.0 部署实例教程

    Solr 4.0 部署实例教程 Solr 4.0的入门基础教程,先说一点部署之后肯定会有人用solrj,solr 4.0好像添加了不少东西,其中CommonsHttpSolrServer这个类改名为H ...

  6. Python 0基础开发游戏:打地鼠(详细教程)VS code版本

    如果你没有任何编程经验,而且想尝试一下学习编程开发,这个系列教程一定适合你,它将带你学习最基本的Python语法,并让你掌握小游戏的开发技巧.你所需要的,就是付出一些时间和耐心来尝试这些代码和操作. ...

  7. SpringCloud2.0 Hystrix Feign 基于Feign实现断路器 基础教程(七)

    1.启动[服务中心]集群,工程名:springcloud-eureka-server 参考 SpringCloud2.0 Eureka Server 服务中心 基础教程(二) 2.启动[服务提供者]集 ...

  8. SpringCloud2.0 Feign 服务发现 基础教程(五)

    1.启动[服务中心]集群,即 Eureka Server 参考 SpringCloud2.0 Eureka Server 服务中心 基础教程(二) 2.启动[服务提供者]集群,即 Eureka Cli ...

  9. SpringCloud2.0 Hystrix Dashboard 断路器指标看板 基础教程(八)

    1.启动基础工程 1.1.启动[服务中心]集群,工程名称:springcloud-eureka-server 参考 SpringCloud2.0 Eureka Server 服务中心 基础教程(二) ...

  10. SpringCloud2.0 Ribbon 服务发现 基础教程(四)

    1.启动[服务中心]集群,即 Eureka Server 参考 SpringCloud2.0 Eureka Server 服务中心 基础教程(二) 2.启动[服务提供者]集群,即 Eureka Cli ...

随机推荐

  1. MySQL的索引原理及使用

    MySQL中的索引模型 Mysql中的索引使用的数据结构一般为搜索树,这里的搜索树,一般使用B树,这里补一下数据结构中的B树结构:说B树之前,先顺一个前置的知识点,平衡二叉树: 平衡二叉树 二叉树应该 ...

  2. HTML——简介-入门

    W3C标准:网页主要由三部分组成 结构:HTML 表现:CSS 行为:JavaScript HTML快速入门   1.新建文本文件,后缀改为 .html   2.编写HTML结构标签(不区分大小写) ...

  3. Java Pom两个模块需要互相引用怎么办

    1. Java POM模块化是什么 在Java项目中,特别是在使用Maven作为构建工具时,"POM模块化"是一个重要的概念,它指的是将大型项目拆分成多个更小.更易于管理的模块(或 ...

  4. 没时间做获取天气的实验 三分钟! 给您看清如何通过HTTP GET请求 获取天气预报

    1. 注册心知天气账号,获取私钥 下面这篇文章是图示讲解的,好东西,何不转载为快? http://www.taichi-maker.com/homepage/iot-development/iot-p ...

  5. C#|.net core 基础 - 深拷贝的五大类N种实现方式

    在实际应用中经常会有这样的需求:获取一个与原对象数据相同但是独立于原对象的精准副本,简单来说就是克隆一份,拷贝一份,复制一份和原对象一样的对象,但是两者各种修改不能互相影响.这一行为也叫深克隆,深拷贝 ...

  6. excel江湖异闻录--华麒麟

    认识他应该是在18.19年左右,那时就感觉这也是个高手,同大部分的高手一样,痴迷函数,热衷创造.挑战不规范的数据. 后来他消失了好长一段时间,群里的同学都以为他退圈了,偶有少数的同学想起他,言语都带着 ...

  7. glance对接ceph

    目录 glance对接ceph 1. 上传镜像 2. 对接ceph 2.1 创建池 2.2 创建用户 2.3 下发ceph文件 2.4 修改globals文件 2.5 更新glance配置 3. 上传 ...

  8. 关于set实现结构体自动去重原理的推论

    转自本人博客,原文链接 先说结论 在每个操作均为log复杂度的前提下,set无法在判断顺序和重复关键字不同时完成对结构体元素的去重. 首先我们先看这段结构体定义,目的是先按num相等进行去重,再按ke ...

  9. 使用AVX2指令集加速推荐系统MMR层余弦相似度计算

    原文:blog.fanscore.cn/a/62/ 1. 背景 前一段时间公司上线了一套Go实现的推荐系统,上线后发现MMR层虽然只有纯计算但耗时十分离谱,通过pprof定位问题所在之后进行了优化,虽 ...

  10. 驻扎初篇(markdown)

    markdown的初级使用语法 本片作为开始使用博客的第一篇笔记 只为了方便为日后的编辑博客做基础的语言记录 以下为markdown的语法 ##标题 # 标题一 ## 标题二 ### 标题三 #### ...