本文只是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 ...
随机推荐
- 全网最适合入门的面向对象编程教程:41 Python 常用复合数据类型-队列(FIFO、LIFO、优先级队列、双端队列和环形队列)
全网最适合入门的面向对象编程教程:41 Python 常用复合数据类型-队列(FIFO.LIFO.优先级队列.双端队列和环形队列) 摘要: 在 Python 中,队列(Queue)是一种常用的数据结构 ...
- Kubernetes-1:初识k8s 什么是kubernetes
Kubernetes简介 为什么要用k8s? 容器间(Docker)在夸主机通信时,只能通过在主机做端口映射(DNAT)来实现,这种方式对于很多集群应用来说及其不方便.会影响整体处理速度,所以引入k8 ...
- DASCTF 2024暑期挑战赛 RE
DASCTF 2024暑期挑战赛 DosSnake 使用ghidra看反汇编 发现有XOR操作 在ida里面看汇编跟一下 字符DASCTF地址往下6个存放的数据与DASCTF字符串进行异或 A=[0x ...
- keycloak~scope客户端模板的使用
scope为何物? scope在oauth2中表示授权的范围,另外也可以理解为,根据认证时scope的参数,在构建jwt时,返回更多的信息:比如在keycloak中,你的可选scope(optiona ...
- 从Workload中优雅隔离Pod
线上集群中,业务跑着跑着,突然发现有个Pod上出现大量错误日志,其他的Pod是正常的,该如何处理呢? 直接删除Pod? 这样不便于保留现场,可能会影响判断问题的根因 让业务方忍一会,先排查下问题? 会 ...
- 如何在 Nuxt 3 中有效使用 TypeScript
title: 如何在 Nuxt 3 中有效使用 TypeScript date: 2024/9/9 updated: 2024/9/9 author: cmdragon excerpt: 摘要:本文详 ...
- ZEGO 最后一公里网络传输的容灾及优化方案
作为运维,你是否遇到过一些用户域名解析异常,你是否又遇到过某些区域云商加速节点异常导致业务不可用,此时的你一脸茫然,不知所措?作为运维,你是否被最后一公里问题搞得焦头烂额? 那么今天我们就来探讨一下最 ...
- Qml 实现水波进度动画条
[写在前面] 最近看到一个非常有趣的动画效果:水波进度动画. 学习了一下实现思路,觉得很有意思. 不过原版是 HTML + CSS,我这里用的是 Qml,有一些小技巧,分享给大家~ [正文开始] 老样 ...
- 我对互联网和网站运作的理解 – Domain, DNS, Hosting 介绍
前言 一直没有写过关于互联网和网站运作的原理相关文章. 这篇就稍微介绍一下它们. 1. 电脑文件 网站是由许多网页组成的, 网页就是电脑里的 file. extension 是 .html 类似于 . ...
- Azure 入门系列 (第五篇 Azure Storage)
本系列 这个系列会介绍从 0 到 1 搭建一个 Web Application 的 Server. 间中还会带上一些真实开发常用的功能. 一共 6 篇 1. Virtual Machine (VM) ...