不久之前开发了一个项目,需要用到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的安装与配置的更多相关文章

  1. solr与.net系列课程(八)solr中重跑索引的注意事项

    solr与.net系列课程(八)solr中重跑索引的注意事项 我们如果在项目中使用solr,那肯定就是把数据库中的数据跑进solr服务器中,solr有两种操作一种是新建索引,一种是增量索引,这里我们来 ...

  2. solr与.net系列课程(七)solr主从复制

    solr与.net系列课程(七)solr主从复制    既然solr是解决大量数据全文索引的方案,由于高并发的问题,我们就要考虑solr的负载均衡了,solr提供非常简单的主从复制的配置方法,那么下面 ...

  3. solr与.net系列课程(六)solr定时增量索引与安全

     solr与.net系列课程(六)solr定时增量索引与安全 solr增量索引的方式,就是一个Http请求,但是这样的请求显然不能满足要求,我们需要的是一个自动的增量索引,solr官方提供了一个定时器 ...

  4. solr与.net系列课程(四)solr查询参数的讲解与.net如何获取solr数据

    solr与.net系列课程(四)solr查询参数的讲解与.net如何获取solr数据 上一节我们完成了solr连接数据库,细心的朋友会发现一个问题,就是solr其实和语言没有任何关系,配置完成后任何语 ...

  5. solr与.net系列课程(三)solr连接数据库

     solr与.net系列课程(三)solr连接数据库 上一章直接讲述的配置文件把大部分人看的很迷惑,大家都想听的是solr到底是怎么用的,好,这一节我们就开始链接数据库,首先讲一下连接之前都要配置哪些 ...

  6. solr与.net系列课程(二)solr的配置文件及其含义

    solr与.net系列课程(二)solr的配置文件及其含义  本节内容还是不会涉及到.net与数据库的内容,但是不要着急,这都是学时solr必学要掌握的东西,solr可不是像其他的dll文件一样,只需 ...

  7. solr与.net系列课程(九)solr5.1的配置

    solr与.net系列课程(九)solr5.1的配置 最近一些园友来咨询solr5.1的配置方式,然后我就去官网下载了个最新版本的solr,发现solr5.0以后solr的下载包里的内容发生的变化,移 ...

  8. solr与.net系列课程(五)solrnet的使用

     solr与.net系列课程(五)solrnet的使用 最近因项目比较忙,所以这篇文章出的比较晚,离上一篇文章已经有半个月的时间了,这节课我们来学下一下solr的.net客户端solrnet 出处   ...

  9. RabbitMQ学习系列(二): RabbitMQ安装与配置

    上一篇,简单介绍了RabbitMQ的情况还有一些相关的概念,这一篇,会讲讲 RabbitMQ安装与配置. 1.安装 Rabbit MQ 是建立在强大的Erlang OTP平台上,因此安装RabbitM ...

随机推荐

  1. Ubuntu上安装MongoDB(译)

    add by zhj:直接从第四步开始就可以了,而且安装好MongoDB后会自动启动的,不必自己去执行启动命令 原文:https://docs.mongodb.com/manual/tutorial/ ...

  2. redis集群出现JedisNoReachableClusterNodeException异常(No reachable node in cluster)

    上午午好好的,突然抛了如下异常: Exception in thread "main" redis.clients.jedis.exceptions.JedisNoReachabl ...

  3. XidianOJ 1120 Gold of Orz Pandas

    题目描述 Orz Panda is addicted to one RPG game. To make his character stronger, he have to fulfil tasks ...

  4. socket编程相关的结构体和字节序转换、IP、PORT转换函数

    注意:结构体之间不能直接进行强制转换, 必须先转换成指针类型才可以进行结构体间的类型转换, 这里需要明确的定义就是什么才叫强制转换. 强制转换是将内存中一段代码以另一种不同类型的方式进行解读, 因此转 ...

  5. Linux中安装和使用rz、sz命令

    安装命令: yum install lrzsz 从服务端发送文件到客户端: sz filename 从客户端上传文件到服务端: rz在弹出的框中选择文件,上传文件的用户和组是当前登录的用户 Secur ...

  6. libcurl安装使用方法-简单实用(摘录)

    http://curl.haxx.se/libcurl/c/example.html 官网c例子http://curl.haxx.se/download/curl-7.21.3.tar.gz 下载地址 ...

  7. Activity生命周期(一) 暨 帮助文档的使用

    --------siwuxie95 首先创建一个ActivityLifeCircle 选择API:21   Android 5.0  (截止目前:2016/12/21,承上启下,兼容更好) 选择空活动 ...

  8. unity3d 游戏插件 溶解特效插件 - Dissolve Shader

    unity3d 游戏插件 溶解特效插件 - Dissolve Shader   链接: https://pan.baidu.com/s/1hr7w39U 密码: 3ed2

  9. 《Java程序设计》实验5

    20145318 <Java程序设计>实验5 实验内容 运行下载的TCP代码,结对进行,一人服务器,一人客户端: 利用加解密代码包,编译运行代码,一人加密,一人解密: 集成代码,一人加密后 ...

  10. mysql 统计

    每周: select count(*) as cnt,week(editdate) as weekflg from projects where year(editdate)=2007 group b ...