本文只是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 ...
随机推荐
- 逆向WeChat(六)
上篇回顾,逆向分析mojo,mmmojo.dll, wmpf_host_export.dll,还有如何通过mojoCore获取c++binding的remote或receiver,并调用它们的功能接口 ...
- 坑人的opencv安装
我想捡起来C++,最近在看opencv,于是我想着一起吧. 但是我低估了这个小麻烦的魅力,曾经安装opencv c++版本就头秃,如今依然头秃.说明我没长进啊-- 折腾了两天,终于装上了. 其中最麻烦 ...
- 合合信息参编“生成式人工智能个人信息保护技术要求系列标准”,助力AI行业可信发展
生成式人工智能作为新一轮的技术革命成果,在赋能千行百业,给经济社会发展带来新机遇的同时,也产生了个人信息泄露.数据安全风险等问题.在此背景下,中国信息通信研究院(简称"中国信通院" ...
- Angular 18+ 高级教程 – Prettier, ESLint, Stylelint
前言 不熟悉 Prettier, ESLint, Stylelint 的朋友可以先看这篇 工具 – Prettier.ESLint.Stylelint. 首先,Angular 没有 built-in ...
- 一篇文章讲清楚synchronized关键字的作用及原理
概述 在应用Sychronized关键字时需要把握如下注意点: 一把锁只能同时被一个线程获取,没有获得锁的线程只能等待: 每个实例都对应有自己的一把锁(this),不同实例之间互不影响:例外:锁对象是 ...
- Vue Cli 创建项目在 GitHub 部署 history 路由模式
1.修改打包路径 在 vue.config.js 中添加 publicPath 配置,其中 teambition-vue 是你项目的 github 名字.否则会找不到资源. module.expo ...
- 使用GRUB Multiboot2引导自制操作系统
使用GRUB Multiboot2引导自制操作系统 前言 之前花了一周时间,从头学习了传统 BIOS 的启动流程.惊讶于背后丰富的技术细节的同时,也感叹 x86 架构那厚重的历史包袱.毕竟,谁能想到, ...
- USB协议详解第4讲(USB描述符-标准配置描述符)
1.USB描述符 USB描述符有设备描述符.标准配置描述符.接口描述符.端点描述符.字符串描述符,HID设备有HID描述符.报告描述符和物理描述符.今天主要是学习USB标准配置描述符的组成. 2.标准 ...
- Java日期时间API系列28-----Jdk8中java.time包中的新的日期时间API类,计算节假日和二十四节气。
1.节日信息计算代码 package com.xkzhangsan.time.holiday; import java.time.DayOfWeek; import java.time.LocalDa ...
- kubernetes的Deployment
Deployment 在我们发布容器中的服务时,总共有一下几种方式: 将旧的pod停掉,创建新的pod并发布 创建新的pod,然后将旧的pod停掉 滚动式升级.创建一个新的pod,删除一个旧的pod, ...