本文只是Solr 4.0的基础教程,本人不经常写东西,写的不好请见谅,欢迎到群233413850进行讨论学习。
转载请标明原文地址:http://my.oschina.net/zhanyu/blog/86147
先说一点部署之后肯定会有人用solrj,solr 4.0好像添加了不少东西,其中CommonsHttpSolrServer这个类改名为HttpSolrServer,我是找了半天才发现,大家以后可以注意。
部署前准备:
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,把下面代码复制进去放到后面:
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> |
其中 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"/> |
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"> |
04 |
<fieldtype name="string" class="solr.StrField" sortMissingLast="true" omitNorms="true"/> |
05 |
<fieldType name="long" class="solr.TrieLongField" precisionStep="0" positionIncrementGap="0"/> |
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"/> |
16 |
<!--
field to use to determine and enforce document uniqueness. --> |
17 |
<uniqueKey>id</uniqueKey> |
19 |
<!--
field for the QueryParser to use when an explicit fieldname is absent --> |
20 |
<defaultSearchField>name</defaultSearchField> |
22 |
<!--
SolrQueryParser configuration: defaultOperator="AND|OR" --> |
23 |
<solrQueryParser defaultOperator="OR"/> |
solrconfig.xml我还不是很懂,在这里就不讲了,但是必须配置(好像是必须配):
01 |
<?xml version="1.0" encoding="UTF-8" ?> |
02 |
<!--
可以从core文件中copy过来 --> |
04 |
<luceneMatchVersion>LUCENE_40</luceneMatchVersion> |
06 |
<directoryFactory name="DirectoryFactory" class="${solr.directoryFactory:solr.StandardDirectoryFactory}"/> |
08 |
<dataDir>${solr.solrtest.data.dir:}</dataDir>
solr.solrtest.data.dir存放的是索引目录 |
10 |
<updateHandler class="solr.DirectUpdateHandler2"> |
12 |
<str name="dir">${solr.solrtest.data.dir:}</str> |
16 |
<requestHandler name="/get" class="solr.RealTimeGetHandler"> |
18 |
<str name="omitHeader">true</str> |
22 |
<requestHandler name="/replication" class="solr.ReplicationHandler" startup="lazy" /> |
24 |
<requestDispatcher handleSelect="true" > |
25 |
<requestParsers enableRemoteStreaming="false" multipartUploadLimitInKB="2048" /> |
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" /> |
33 |
<requestHandler name="/admin/ping" class="solr.PingRequestHandler"> |
34 |
<lst name="invariants"> |
35 |
<str name="q">solrpingquery</str> |
38 |
<str name="echoParams">all</str> |
42 |
<!--
config for the admin interface --> |
44 |
<defaultQuery>solr</defaultQuery> |
之后在exampledocs目录下手动创建一个solr1.xml文件:
4 |
<field name="id">solr1</field> |
5 |
<field name="type">type1</field> |
6 |
<field name="name">my
solr test</field> |
跟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查询,右侧生成了地址可以打开查看,到此结束。
- Android程序开发0基础教程(一)
程序猿学英语就上视觉英语网 Android程序开发0基础教程(一) 平台简单介绍 令人激动的Google手机操作系统平台-Android在2007年11月13日正式公布了,这是一个开放源码的操 ...
- ThinkPHP 6.0 基础教程 - 安装
ThinkPHP6.0 的环境: PHP >= 7.1.0 我本地环境: Win10 PhpStudy 安装 PhpStudy 如果你已经安装 PhpStudy 或其他环境,请忽略这里 安装方法 ...
- Zabbix3.0基础教程之一:系统监控,zabbix安装与基本配置
一.安装环境: 系统环境: 系统版本:CentOS Linux release 7.4.1708 (Core) 内核版本:3.10.0-693.el7.x86_64 关闭Firewall与SELinu ...
- SpringBoot2.0基础案例(01):环境搭建和RestFul风格接口
一.SpringBoot 框架的特点 1.SpringBoot2.0 特点 1)SpringBoot继承了Spring优秀的基因,上手难度小 2)简化配置,提供各种默认配置来简化项目配置 3)内嵌式容 ...
- Solr 4.0 部署实例教程
Solr 4.0 部署实例教程 Solr 4.0的入门基础教程,先说一点部署之后肯定会有人用solrj,solr 4.0好像添加了不少东西,其中CommonsHttpSolrServer这个类改名为H ...
- Python 0基础开发游戏:打地鼠(详细教程)VS code版本
如果你没有任何编程经验,而且想尝试一下学习编程开发,这个系列教程一定适合你,它将带你学习最基本的Python语法,并让你掌握小游戏的开发技巧.你所需要的,就是付出一些时间和耐心来尝试这些代码和操作. ...
- SpringCloud2.0 Hystrix Feign 基于Feign实现断路器 基础教程(七)
1.启动[服务中心]集群,工程名:springcloud-eureka-server 参考 SpringCloud2.0 Eureka Server 服务中心 基础教程(二) 2.启动[服务提供者]集 ...
- SpringCloud2.0 Feign 服务发现 基础教程(五)
1.启动[服务中心]集群,即 Eureka Server 参考 SpringCloud2.0 Eureka Server 服务中心 基础教程(二) 2.启动[服务提供者]集群,即 Eureka Cli ...
- SpringCloud2.0 Hystrix Dashboard 断路器指标看板 基础教程(八)
1.启动基础工程 1.1.启动[服务中心]集群,工程名称:springcloud-eureka-server 参考 SpringCloud2.0 Eureka Server 服务中心 基础教程(二) ...
- SpringCloud2.0 Ribbon 服务发现 基础教程(四)
1.启动[服务中心]集群,即 Eureka Server 参考 SpringCloud2.0 Eureka Server 服务中心 基础教程(二) 2.启动[服务提供者]集群,即 Eureka Cli ...
随机推荐
- Go plan9 汇编: 打通应用到底层的任督二脉
原创文章,欢迎转载,转载请注明出处,谢谢. 0. 前言 作为一个严肃的 Gopher,了解汇编是必须的.本汇编系列文章会围绕基本的 Go 程序介绍汇编的基础知识. 1. Go 程序到汇编 首先看一个简 ...
- Android Adapter 添加数据,忽然变成倒序
忽然出现的问题,最后发现:因为RecyclerView 调用 setLayoutManager方法时,最后一个参数是否显示分割线为true 改为false即可
- sicp每日一题[1.41]
Exercise 1.41 Define a procedure double that takes a procedure of one argument as argument and retur ...
- springCloud allibaba 微服务引言
微服务篇: springcloud 常见组件有哪些 nacos 的服务注册表结构是怎样的 nacos 如何支撑阿里内部数十万服务注册压力 nacos 如何避免并发读写冲突问题 nacos 和eurek ...
- Openstack-删除卷:您被禁止执行 删除卷 (僵尸卷)
您被禁止执行 删除卷 (僵尸卷) 您被禁止执行 删除卷: 7f23a26a-27f2-4504-9191-0f5630a5bff5, 卷一直在创建,但实例已经被删除了 [root@controller ...
- 一个 tomcat 下如何部署多个项目?附详细步骤
一个tomcat下如何部署多个项目?Linux跟windows系统下的步骤都差不多,以下linux系统下部署为例.windows系统下部署同理. 一.不修改端口,部署多个项目 清楚tomcat目录结构 ...
- c语言 宏的一些深层应用(##,#,宏函数)
"##" 宏拼接 #define CONCATENATE(a, b) a ## b CONCATENATE(student_, 1) // 将a和b拼接起来变成一个新的变量 -&g ...
- 系统编程-进程-先后fork或open一个文件的区别
关联博文: 当文件操作遇上fork Linux内核的文件结构体 struct file { ......... struct path f_path; //文件的路径 #define f_dentry ...
- 一,初始 MyBatis-Plus
一,初始 MyBatis-Plus @ 目录 一,初始 MyBatis-Plus 1. MyBatis-Plus 的概述 2. 入门配置第一个 MyBatis-Plus 案例 3. 补充说明: 3.1 ...
- ARMv8 寄存器
本文主要介绍 Armv8/v9 指令集架构中常用部分,详细的还是要看 Arm architecture reference manual. ARMv8 架构 ARMv8 架构支持3种指令集: T32, ...