solr与.net系列课程(一)solr的安装与配置
不久之前开发了一个项目,需要用到solr,因为所以在开始再网上查找资料,但是发现大部分的资料都是很片面的,要么就是只讲解solr如何安装的,要么就是只讲解solr的某一个部分的,而且很多都是资料都是一模一样的,一个人转载另一个人的,很难找到一个从solr配置,到与数据库连接在结合实际项目的,而且由于solr使用java开发的,所以现实中大多数的实例都是java版本的,.net版本的少之又少,所以一个.net开发人员在没有别人讲解的情况下学习solr是一件很吃力的事情,所以我想写出一个solr的系列教程,让一个没有solr基础的.net开发者,看我之后能能够知道solr原理,重要文件配置,大部分参数的意义,同时在.net项目中轻松使用.
什么是solr?
那么在学习之前我们要了解一下什么是solr先看一下,官方的解释:
Solr是一个独立的企业级搜索应用服务器,它对外提供类似于Web-service的API接口。用户可以通过http请求,向搜索引擎服务器提交一定格式的XML,Json等文件,生成索引;也可以通过Http Get操作提出查找请求,并得到XML,JSONd等格式的返回结果, Solr是一个高性能,采用Java5开发,基于Lucene的全文搜索服务器。同时对其进行了扩展,提供了比Lucene更为丰富的查询语言,同时实现了可配置、可扩展并对查询性能进行了优化,并且提供了一个完善的功能管理界面,是一款非常优秀的全文搜索引擎。
官方定义就说到这里,这种定义网上一堆一堆的而且都是一样的,想了解的朋友可以自己去百度,基本上都是一个版本的,所以就不浪费大家的时间了,下面说一说我对solr的理解:
solr是将数据库的数据通过一定的索引规则,转化成容易检索的本地文件,文件的后缀名为.fdt,然后我们通过solr去访问这些本地文件(这些都是由solr内部完成的),从而加快索引速度,solr是java编写的,所以需要运行在tomcat服务器上,我们可以通用http请求的方式去访问solr,并获取数据.
solr 到底能干什么?
solr主要是实现大数据的站内搜索的,举个例子吧,当有一张表有上千万数据时,有一个字段你存储的是文章,现在要求你找出文章内容带有"博客园"的数据,这时你怎么办,用like查询?,那估计得查到第二天,solr就可以很好的解决问题,用solr的方式查询,最多也不会超过1秒钟.优化做的好的话都是毫秒级的
在说一点题外话,solr其实主要是配置相应的文件,这对于很多.net程序员来说,很陌生,因为我们总是习惯使用现成的,封装好的东西来使用,久而久之,就容易变懒,一碰见稍微麻烦点的配置就觉得很难(这是很多.net程序员的通病),我之前再网上指导过一个想学solr的.net程序员,他上来就来个一句话,有没有现成的例子,给我一份,然后我说没有,说这个需要在tomcat中配置很多xml文件,实际与代码结合的其实非常的少,solr的大部分东西就是在配置上,然后这个程序员就几乎放弃了对solr学习,之后的就简单的说了几句谈话就结束了.
第一节我们来讲解solr的安装与配置(这个基本和其他人的都是一样的)
因为solr是用java 开发的,所以需要运行在tomcat中(无论是什么项目,.net的项目也要部署在tomcat,或者Nginx),那么第一步我们就要先安装jdk(这里我安装的的jdk1.7),与tomcat(选择的是tomcat7),这两个的安装就不在这里细讲了,网上一查一大堆
1.下载Tomcat与solr并解压(安装前先装jdk)
Tomcat解压后磁盘路径为C:/Program Files/Apache Software Foundation/Tomcat 7.0(路径随意).
2.启动Tomcat服务器
浏览器输入: http://localhost:8080
这步操作是为了操作是为了在Tomcat/conf目录下生成Catalina/localhost目录,这个文件会在接下来使用.
3. 在官网上下载solr文件包 我这下载的是solr-4.7.2
将solr部署到Tomcat
a) 复制solr-4.7.2目录example/solr到Tomcat的根目录下
b) 复制solr-4.7.2目录dist/solr-4.7.2.war到Tomcat的webapps/solr.war(solr-4.7.2.war重命名为solr.war);
c) 复制solr-4.7.2目录example/lib/ext下的所有jar到Tomcat的lib下,同时将example/resources下的log4j.properties文件也复制到Tomcat的lib下;
d) 在Tomcat/conf/Catalina/localhost下创建solr.xml文件,内容如下:
<?xml version="1.0" encoding="utf-8"?>
<Context docBase="webapps/solr.war" debug="0" crossContext="true">
<Environment name="solr/home" type="java.lang.String" value="c:/Program Files/Apache Software Foundation /Tomcat7/solr" override="true"/>
</Context>
4.重新启动Tomcat服务器,在浏览器输入http://localhost:8080/solr 查看服务,出现如下界面就安装成功了.
安装IK分词器
1.http://code.google.com/p/ik-analyzer/downloads/detail?name=IK%20Analyzer%202012FF_hf1.zip&can=2&q=
2.复制下面ik分词解压包下面的如下三个文件到Tomcat7\webapps\solr\WEB-INF\lib\文件夹下面:
IKAnalyzer.cfg.xml、IKAnalyzer2012FF_u1.jar、stopword.dic
3.修改Tomcat7\solr\collection1\conf\文件夹下的schema.xml.在<types></types>
中增加如下内容:
<!--配置IK分词器—name是名称 下面可以选择分词器-->
<fieldType name="text_ik" class="solr.TextField">
<!--索引时候的分词器-->
<analyzer type="index" isMaxWordLength="false" class="org.wltea.analyzer.lucene.IKAnalyzer"/>
<!--查询时候的分词器-->
<analyzer type="query" isMaxWordLength="true" class="org.wltea.analyzer.lucene.IKAnalyzer"/>
</fieldType>
4.启动Tomcat,在浏览器中输入http://localhost:8080/solr ,在页面左侧菜单中选择Core为collection1,点击Analysis(漏斗形状)菜单,在右侧页面Filed Value文本框中输入要测试分词的中文串.
5.在Field Value下方,Analyse FieldName/FieldType中选择text_ik(我这里起的名字是 text_cn),然后点击左侧Analyze Value按钮,就能看到分词结果。
效果图如下:
ok以上就是solr的安装,这只是第一步,它还依然什么也做不了,下节我们将讲解solr的配置文件.
qq群: 424259523
solr与.net系列课程(一)solr的安装与配置的更多相关文章
- solr与.net系列课程(八)solr中重跑索引的注意事项
solr与.net系列课程(八)solr中重跑索引的注意事项 我们如果在项目中使用solr,那肯定就是把数据库中的数据跑进solr服务器中,solr有两种操作一种是新建索引,一种是增量索引,这里我们来 ...
- solr与.net系列课程(七)solr主从复制
solr与.net系列课程(七)solr主从复制 既然solr是解决大量数据全文索引的方案,由于高并发的问题,我们就要考虑solr的负载均衡了,solr提供非常简单的主从复制的配置方法,那么下面 ...
- solr与.net系列课程(六)solr定时增量索引与安全
solr与.net系列课程(六)solr定时增量索引与安全 solr增量索引的方式,就是一个Http请求,但是这样的请求显然不能满足要求,我们需要的是一个自动的增量索引,solr官方提供了一个定时器 ...
- solr与.net系列课程(四)solr查询参数的讲解与.net如何获取solr数据
solr与.net系列课程(四)solr查询参数的讲解与.net如何获取solr数据 上一节我们完成了solr连接数据库,细心的朋友会发现一个问题,就是solr其实和语言没有任何关系,配置完成后任何语 ...
- solr与.net系列课程(三)solr连接数据库
solr与.net系列课程(三)solr连接数据库 上一章直接讲述的配置文件把大部分人看的很迷惑,大家都想听的是solr到底是怎么用的,好,这一节我们就开始链接数据库,首先讲一下连接之前都要配置哪些 ...
- solr与.net系列课程(二)solr的配置文件及其含义
solr与.net系列课程(二)solr的配置文件及其含义 本节内容还是不会涉及到.net与数据库的内容,但是不要着急,这都是学时solr必学要掌握的东西,solr可不是像其他的dll文件一样,只需 ...
- solr与.net系列课程(九)solr5.1的配置
solr与.net系列课程(九)solr5.1的配置 最近一些园友来咨询solr5.1的配置方式,然后我就去官网下载了个最新版本的solr,发现solr5.0以后solr的下载包里的内容发生的变化,移 ...
- solr与.net系列课程(五)solrnet的使用
solr与.net系列课程(五)solrnet的使用 最近因项目比较忙,所以这篇文章出的比较晚,离上一篇文章已经有半个月的时间了,这节课我们来学下一下solr的.net客户端solrnet 出处 ...
- RabbitMQ学习系列(二): RabbitMQ安装与配置
上一篇,简单介绍了RabbitMQ的情况还有一些相关的概念,这一篇,会讲讲 RabbitMQ安装与配置. 1.安装 Rabbit MQ 是建立在强大的Erlang OTP平台上,因此安装RabbitM ...
随机推荐
- NRF51822之SPI
/**@brief Function for initializing a SPI master driver. * * @param[in] p_instance Pointer to SPI ma ...
- windows下gethostbyname 调用失败
gethostbyname()函数属于WinSock API库,而在使用WinSock API之前,必须调用WSAStartup函数,只有该函数成功返回(表示应用程序与WinSock库成功地建立起连接 ...
- TIJ读书笔记06-终结清理和垃圾回收
TIJ读书笔记06-终结清理和垃圾回收 finalize()方法 垃圾回收器如何工作 java的垃圾回收是由jvm来控制的.所以需要java程序员参与的部分不是很多. 但是在这里需要明白一点,java ...
- XidianOJ 1112 Too stupid
题目描述 某天 light由于太富而且太帅遭到了歹徒的袭击,现在他遇到了n个歹徒,准备对light施行不法行为,虽然light身体强壮,但是毕竟只有一个人肯定打不过那么多歹徒,但是高智商的light觉 ...
- 第23章 排序算法(包括merge等)
第23章 排序算法 Sorting:1 sort Sort elements in range (function template)2 stable_sort Sort elements pr ...
- mybatis like的用法
oracle数据库: SELECT * FROM user WHERE name like CONCAT('%',#{name},'%') 或 SELECT * FROM user WHERE nam ...
- TortoiseSVN文件夹及文件状态图标不显示解决方法
win8 64位系统,原本svn是好用的,安装了klive金山快盘后,svn图标都不显示了.最后通过修改注册表解决: win+R调出运行框,输入regedit,打开注册表编辑器. HKEY_LOCAL ...
- PHP基本问题
WampServer修改端口及菜单Localhost http://www.wuwenhui.cn/3047.html WAMPServer默认配置更改-web根目录 http://blog.csdn ...
- Echarts tooltip文字没有左对齐
tooltip : { trigger: 'axis', axisPointer : { // 坐标轴指示器,坐标轴触发有效 type : 'shadow' // 默认为直线,可选为:'line' | ...
- Calling startActivity() from outside of an Activity context requires the FLAG_ACTIVITY_NEW_TASK fla
转载于 http://blog.csdn.net/wike163/article/details/6678073 从一个Activity中要通过intent调出另一个Activity的话,需 ...