本文目录一览:
- 1、windows下怎么安装solr的php扩展
- 2、Windows下怎样安装Tomcat
- 3、myeclipse10中如何使用solrj6.5
- 4、教你使用solr搭建你的全文检索
- 5、如何用Solr搭建大数据查询平台
windows下怎么安装solr的php扩展
1、安装libssh2扩展
带dll的就是windows用的。
根据自己的环境选择安装包。
这里选择的是5.5
Thread
Safe
(TS)
x64
解压完后,会有三个文件,libssh2.dll、php_ssh.dll、php_ssh2.pdb。
将
php_ssh.dll、php_ssh2.pdb
放到你的
php
扩展目录下
php/ext/
下。
将libssh2.dll
复制到
c:/windows/system32
和
c:/windows/syswow64
各一份
php.ini中加入
extension=php_ssh2.dll
重启服务器,查看phpinfo(),是否有显示php_ssh2扩展加载成功。
2、安装solr扩展
(2.3.0)
下载,带dll的就是windows版的。
将压缩包的php_solr.dll、php_solr.pdb
放到你的
php
扩展目录下
php/ext/
下。
php.ini中加入
extension=php_solr.dll
重启服务器,查看phpinfo(),是否有显示solr扩展加载成功。
Windows下怎样安装Tomcat
Tomcat下Solr安装配置由于Solr基于java开发,因此Solr在windows及Linux都能较好部署使用,但由于Solr提供了一些用于测试及管理、维护较为方便的shell脚本,因此在生产部署时候建议安装在Linux上,测试时候可以在windows使用。Solr是一个基于Lucene的Java搜索引擎服务器。Solr 提供了层面搜索、命中醒目显示并且支持多种输出格式(包括 XML/XSLT 和 JSON 格式)。它易于安装和配置,而且附带了一个基于 HTTP 的管理界面。Solr 创建的索引与 Lucene 搜索引擎库完全兼容。通过对Solr 进行适当的配置,某些情况下可能需要进行编码,Solr 可以阅读和使用构建到其他 Lucene 应用程序中的索引。此外,很多 Lucene 工具(如Nutch、 Luke)也可以使用Solr 创建的索引。安装环境Windows 7 64bitApache-tomcat-8.0.9-windows-x64Solr-4.9.0JDK 1.8.0_05 64bit安装步骤Tomcat和JDk的安装在这里就略过。注意:solr4.9要求jdk1.7+步骤一:解压solr-4.9.0到任意文件夹,我解压到D:Installed Applicationssolr-4.9.0solr-4.9.0目录下。步骤二:将solr-4.9.0dist solr-4.9.0.war复制到Tomcat webapp/目录下,最好重命名为solr.war。步骤三:启动Tomcat,会报错,这步只是为了将solr-4.9.0.war解压,所以手动解压放在webapp目录下面也是可行的。步骤四:方法一:打开webappssolrWEB-INFweb.xml找到:这里是需要配置solr/home,只需要修改/put/your/solr/home/here这个目录可以自定义,建议就用步骤一解压的目录,这里需要非常注意:在Solr官网的Tutorial里面有如下一段话:How Solr Works with TomcatThe two basic steps for running Solr in any Web application container are as follows:Make the Solr classes available to the container. In many cases, the Solr Web application archive (WAR) file can be placed into a special directory of the application container. In the case of Tomcat, you need to place the Solr WAR file in Tomcat's webapps directory. If you installed Tomcat with Solr, take a look in tomcat/webapps:you'll see the solr.war file is already there.Point Solr to the Solr home directory that contains conf/solrconfig.xml and conf/schema.xml. There are a few ways to get this done. One of the best is to define the solr.solr.home Java system property. With Tomcat, the best way to do this is via a shell environment variable, JAVA_OPTS. Tomcat puts the value of this variable on the command line upon startup从这里可以看出,指向的目录需要包含conf/solrconfig.xml和conf/schema.xml这两个文件,也就意味着在所指向的目录中需要有conf子目录,我就是因为官网的这段解释,搞了半天没有成功,其实是我理解错了,我认为在solr.solr.home目录下必须要有子目录conf,conf里面包含solrconfig.xml和schema.xml。但是其实conf目录是放在collection1目录下面的,collection是solr的一个Instance实例,solr中可以配置多个collection,可以有独立的配置文件。我这边web.xml的配置为:solr/homeD:/Installed Applications/solr-4.9.0/solr-4.9.0/examplejava.lang.String特别需要注意配置里面使用的是反斜杠"/",而不是windows下默认的""。这里我是直接指向example文件夹。方法二(个人推荐):在$TOMCAT_HOME/conf/Catalina/localhost目录下新建solr.xml文件,内容为:这边需要注意,override需要设置为false,否则每次启动tomcat都会重新解压war文件覆盖掉之前的配置,或者手动解压后,把context path直接指向文件夹步骤五:将solr-4.9.0examplesolr目录下的collection1目录整体copy到solr-4.9.0example目录下。读者可以自己自定义路径,web.xml中定义的,这个指向的目录包含collection1目录就好了。步骤六:将D:Installed Applicationssolr-4.9.0solr-4.9.0examplelibext目录下的jar包copy到apache-tomcat-8.0.9lib目录下,也可以copy到webappssolrWEB-INFlib下,读者可以自行选择(全局和局部的问题而已)。(如果启动还是报错,可以根据提示在solr-4.9.0dist中找相应的jar包)。步骤七:打开Tomcat conf目录下的server.xml,找到下面一段代码添加URIEncoding="UTF-8",添加中文支持。connectionTimeout="20000"redirectPort="8443"URIEncoding="UTF-8" /步骤八:启动Tomcat,打开浏览器输入:localhost:8080/solr/admin/,看到启动画面就说明安装成功。总结由上面的安装步骤可以看出来,其中步骤四是最核心的一步,这里面需要了解Solr的运行原理:Solr是类似于Http接口的一种服务,它需要在Web容器(这里是Tomcat)中部署,运行后,应用程序用Http请求的方式和Solr交互,包括添加索引、查询等等。所以我们需要在Web容器中部署Solr,并且在Tomcat配置中指明Solr配置的目录。在Linux下的安装方法跟Windows下没有大的区别。-solr6.5windows安装
myeclipse10中如何使用solrj6.5
问题说清楚啊, 是要这三个版本的myeclipse,还是要破解, 还是不知道怎么安装。
教你使用solr搭建你的全文检索
Solr 是一个可供企业使用的 基于 Lucene 的开箱即用的搜索服务器 对Lucene不熟?那么建议先看看下面两篇文档
实战Lucene 第 部分 初识 Lucene lo lucene /
用Lucene加速Web搜索应用程序的开发 lucene /
一 solr介绍
solr是基于Lucene Java搜索库的企业级全文搜索引擎 目前是apache的一个项目 它的官方网址在 solr需要运行在一个servlet 容器里 例如tomcat solr在lucene的上层提供了一个基于HTTP/XML的Web Services 我们的应用需要通过这个服务与solr进行交互 -solr6.5windows安装
二 solr安装和配置
关于solr的安装和配置 这里也有两篇非常好的文档 作者同时也是 Lucene Java 项目的提交人和发言人
使用Apache Solr实现更加灵巧的搜索 solr /l
solr /l
下面主要说说需要注意的地方
Solr的安装非常简单 下载solr的zip包后解压缩将dist目录下的war文件改名为solr war直接复制到tomcat 的webapps目录即可 注意一定要设置solr的主位置 有三种方法 我采用的是在tomcat里配置java p/env/solr/home的一个JNDI指向solr的主目录(example目录下) 建立/tomcat /conf/Catalina/localhost/solr xml文件 -solr6.5windows安装
Context docBase= D:/solr war debug= crossContext= true Environment name= solr/home type= java lang String value= D:/solr/solr override= true //Context-solr6.5windows安装
观察这个指定的solr主位置 里面存在两个文件夹 conf和data 其中conf里存放了对solr而言最为重要的两个配置文件schema xml和solrconfig xml data则用于存放索引文件 -solr6.5windows安装
schema xml主要包括types fields和其他的一些缺省设置
solrconfig xml用来配置Solr的一些系统属性 例如与索引和查询处理有关的一些常见的配置选项 以及缓存 扩展等等
上面的文档对这两个文件有比较详细的说明 非常容易上手 注意到schema xml里有一个
uniqueKeyurl/uniqueKey
的配置 这里将url字段作为索引文档的唯一标识符 非常重要
三 加入中文分词
对全文检索而言 中文分词非常的重要 这里采用了qieqie庖丁分词(非常不错 )) 集成非常的容易 我下载的是 alpha 版本 其中它支持最多切分和按最大切分 创建自己的一个中文TokenizerFactory继承自solr的BaseTokenizerFactory -solr6.5windows安装
/** * Created by IntelliJ IDEA * User: ronghao * Date: * Time: : : * 中文切词 对庖丁切词的封装 */ public class ChineseTokenizerFactory extends BaseTokenizerFactory { /** * 最多切分 默认模式 */ public static final String MOST_WORDS_MODE = most words ; /** * 按最大切分 */ public static final String MAX_WORD_LENGTH_MODE = max word length ; private String mode = null; public void setMode(String mode) { if (mode==null||MOST_WORDS_MODE equalsIgnoreCase(mode) || default equalsIgnoreCase(mode)) { this mode=MOST_WORDS_MODE; } else if (MAX_WORD_LENGTH_MODE equalsIgnoreCase(mode)) { this mode=MAX_WORD_LENGTH_MODE; } else { throw new IllegalArgumentException( 不合法的分析器Mode 参数设置: + mode); } } @Override public void init(Map args) { super init(args); setMode(args get( mode )); } public TokenStream create(Reader input) { return new PaodingTokenizer(input PaodingMaker make() createTokenCollector()); } private TokenCollector createTokenCollector() { if( MOST_WORDS_MODE equals(mode)) return new MostWordsTokenCollector(); if( MAX_WORD_LENGTH_MODE equals(mode)) return new MaxWordLengthTokenCollector(); throw new Error( never happened ); } } -solr6.5windows安装
在schema xml的字段text配置里加入该分词器
fieldtype name= text class= solr TextField positionIncrementGap=
*** yzer type= index
tokenizer class= ronghao fulltextsearch *** yzer ChineseTokenizerFactory mode= most words / filter class= solr StopFilterFactory ignoreCase= true words= stopwords txt /-solr6.5windows安装
filter class= solr WordDelimiterFilterFactory generateWordParts= generateNumberParts= catenateWords= catenateNumbers= catenateAll= /-solr6.5windows安装
filter class= solr LowerCaseFilterFactory /
filter class= solr RemoveDuplicatesTokenFilterFactory /
/ *** yzer
*** yzer type= query
tokenizer class= ronghao fulltextsearch *** yzer ChineseTokenizerFactory mode= most words /
filter class= solr SynonymFilterFactory synonyms= synonyms txt ignoreCase= true expand= true /
filter class= solr StopFilterFactory ignoreCase= true words= stopwords txt /
filter class= solr WordDelimiterFilterFactory generateWordParts= generateNumberParts= catenateWords= catenateNumbers= catenateAll= /-solr6.5windows安装
filter class= solr LowerCaseFilterFactory /
filter class= solr RemoveDuplicatesTokenFilterFactory /
/ *** yzer
/fieldtype
完成后重启tomcat 即可在
体验到庖丁的中文分词 注意要将paoding *** ysis jar复制到solr的lib下 注意修改jar包里字典的home
四 与自己应用进行集成
Solr安装完毕 现在可以将自己的应用与solr集成 其实过程非常的简单 应用增加数据——根据配置的字段构建add的xml文档——post至solr/update
应用删除数据à根据配置的索引文档唯一标识符构建delete的xml文档——post至solr/update
检索数据à构建查询xml—get至/solr/select/——对solr返回的xml进行处理——页面展现
具体的xml格式可以在solr网站找到 另外就是solr支持高亮显示 非常方便
关于中文 solr内核支持UTF 编码 所以在tomcat里的server xml需要进行配置
Connector port= maxHttpHeaderSize= URIEncoding= UTF …/
另外 向solr Post请求的时候需要转为utf 编码 对solr 返回的查询结果也需要进行一次utf 的转码 检索数据时对查询的关键字也需要转码 然后用 + 连接
String[] array = StringUtils split(query null ); for (String str : array) { result = result + URLEncoder encode(str UTF ) + + ; } -solr6.5windows安装
lishixinzhi/Article/program/Java/hx/201311/25984
如何用Solr搭建大数据查询平台
0×00 开头照例扯淡
自从各种脱裤门事件开始层出不穷,在下就学乖了,各个地方的密码全都改成不一样的,重要帐号的密码定期更换,生怕被人社出祖宗十八代的我,甚至开始用起了假名字,我给自己起一新网名”兴才”,这个看起来还不错的名字,其实是我们家乡骂人土话,意思是脑残人士…. -_-|||额好吧,反正是假的,不要在意这些细节。-solr6.5windows安装
这只是名,至于姓氏么,每个帐号的注册资料那里,照着百家姓上赵钱孙李周吴郑王的依次往下排,什么张兴才、李兴才、王兴才……于是也不知道我这样”兴才”了多久,终于有一天,我接到一个陌生电话:您好,请问是马兴才先生吗?-solr6.5windows安装
好么,该来的终于还是来了,于是按名索骥,得知某某网站我用了这个名字,然后通过各种途径找,果然,那破站被脱裤子了。
果断Down了那个裤子,然后就一发不可收拾,走上了收藏裤子的不归路,直到有一天,我发现收藏已经非常丰富了,粗略估计得好几十亿条数据,拍脑袋一想,这不能光收藏啊,我也搭个社工库用吧……
0×01 介绍
社工库怎么搭呢,这种海量数据的东西,并不是简单的用mysql建个库,然后做个php查询select * from sgk where username like ‘%xxxxx%’这样就能完事的,也不是某些幼稚骚年想的随便找个4g内存,amd双核的破电脑就可以带起来的,上面这样的语句和系统配置,真要用于社工库查询,查一条记录恐怕得半小时。好在这个问题早就被一种叫做全文搜索引擎的东西解决了,更好的消息是,全文搜索引擎大部分都是开源的,不需要花钱。-solr6.5windows安装
目前网上已经搭建好的社工库,大部分是mysql+coreseek+php架构,coreseek基于sphinx,是一款优秀的全文搜索引擎,但缺点是比较轻量级,一旦数据量过数亿,就会有些力不从心,并且搭建集群做分布式性能并不理想,如果要考虑以后数据量越来越大的情况,还是得用其他方案,为此我使用了solr。-solr6.5windows安装
Solr的基础是著名的Lucene框架,基于java,通过jdbc接口可以导入各种数据库和各种格式的数据,非常适合开发企业级的海量数据搜索平台,并且提供完善的solr cloud集群功能,更重要的是,solr的数据查询完全基于http,可以通过简单的post参数,返回json,xml,php,python,ruby,csv等多种格式。-solr6.5windows安装
以前的solr,本质上是一组servlet,必须放进Tomcat才能运行,从solr5开始,它已经自带了jetty,配置的好,完全可以独立使用,并且应付大量并发请求,具体的架构我们后面会讲到,现在先来进行solr的安装配置。-solr6.5windows安装
0×02 安装和配置
以下是我整个搭建和测试过程所用的硬件和软件平台,本文所有内容均在此平台上完成:
软件配置: solr5.5,mysql5.7,jdk8,Tomcat8 Windows10/Ubuntu14.04 LTS
硬件配置: i7 4770k,16G DDR3,2T西数黑盘
2.1 mysql数据库
Mysql数据库的安装和配置我这里不再赘述,只提一点,对于社工库这种查询任务远远多于插入和更新的应用来说,最好还是使用MyISAM引擎。
搭建好数据库后,新建一个库,名为newsgk,然后创建一个表命名为b41sgk,结构如下:
id bigint 主键 自动增长
username varchar 用户名
email varchar 邮箱
password varchar 密码
salt varchar 密码中的盐或者第二密码
ip varchar ip、住址、电话等其他资料
site varchar 数据库的来源站点
接下来就是把收集的各种裤子全部导入这个表了,这里推荐使用navicat,它可以支持各种格式的导入,具体过程相当的枯燥乏味,需要很多的耐心,这里就不再废话了,列位看官自己去搞就是了,目前我初步导入的数据量大约是10亿条。-solr6.5windows安装
2.2 Solr的搭建和配置
首先下载solr:
$ wget
解压缩:
$ tar zxvf solr-5.5.0.tgz
安装jdk8:
$ sudo add-apt-repository ppa:webupd8team/java
$ sudo apt-get update
$ sudo apt-get install oracle-java8-installer
$ sudo apt-get install oracle-java8-set-default
因为是java跨平台的,Windows下和linux下solr是同一个压缩包,windows下jdk的安装这里不再说明。
进入解压缩后的solr文件夹的bin目录,solr.cmd和solr分别是windows和linux下的启动脚本:
因为社工库是海量大数据,而jvm默认只使用512m的内存,这远远不够,所以我们需要修改,打开solr.in.sh文件,找到这一行:
SOLR_HEAP=”512m”
依据你的数据量,把它修改成更高,我这里改成4G,改完保存. 在windows下略有不同,需要修改solr.in.cmd文件中的这一行:
set SOLR_JAVA_MEM=-Xms512m -Xmx512m
同样把两个512m都修改成4G。
Solr的启动,重启和停止命令分别是:
$ ./solr start
$ ./solr restart –p 8983
$ ./solr stop –all
在linux下还可以通过install_solr_service.sh脚本把solr安装为服务,开机后台自动运行。
Solr安装完成,现在我们需要从mysql导入数据,导入前,我们需要先创建一个core,core是solr的特有概念,每个core是一个查询、数据,、索引等的集合体,你可以把它想象成一个独立数据库,我们创建一个新core:-solr6.5windows安装
在solr-5.5.0/server/solr子目录下面建立一个新文件夹,命名为solr_mysql,这个是core的名称,在下面创建两个子目录conf和data,把solr-5.5.0/solr-5.5.0/example/example-DIH/solr/db/conf下面的所有文件全部拷贝到我们创建的conf目录中.接下来的配置主要涉及到三个文件, solrconfig.xml, schema.xml和db-data-config.xml。-solr6.5windows安装
首先打开db-data-config.xml,修改为以下内容:
dataConfig
dataSource name="sgk" type="JdbcDataSource" driver="com.mysql.jdbc.Driver" url="jdbc:mysql://127.0.0.1:3306/newsgk" user="root" password="password" batchSize="-1" /-solr6.5windows安装
document name="mysgk"
entity name="b41sgk" pk="id" query="select * from b41sgk"
field column="id" name="id"/
field column="username" name="username"/
field column="email" name="email"/
field column="password" name="password"/
field column="salt" name="salt"/
field column="ip" name="ip"/
field column="site" name="site"/
/entity
/document
/dataConfig
这个文件是负责配置导入数据源的,请按照mysql实际的设置修改datasource的内容,下面entity的内容必须严格按照mysql中社工库表的结构填写,列名要和数据库中的完全一样。
然后打开solrconfig.xml,先找到这一段:
schemaFactory class="ManagedIndexSchemaFactory"
bool name="mutable"true/bool
str name="managedSchemaResourceName"managed-schema/str
/schemaFactory
把它全部注释掉,加上一行,改成这样:
!-- schemaFactory class="ManagedIndexSchemaFactory"
bool name="mutable"true/bool
str name="managedSchemaResourceName"managed-schema/str
/schemaFactory--
schemaFactory class="ClassicIndexSchemaFactory"/
这是因为solr5 以上默认使用managed-schema管理schema,需要更改为可以手动修改。
然后我们还需要关闭suggest,它提供搜索智能提示,在社工库中我们用不到这样的功能,重要的是,suggest会严重的拖慢solr的启动速度,在十几亿数据的情况下,开启suggest可能会导致solr启动加载core长达几个小时!-solr6.5windows安装
同样在solrconfig.xml中,找到这一段:
searchComponent name="suggest" class="solr.SuggestComponent"
lst name="suggester"
str name="name"mySuggester/str
str name="lookupImpl"FuzzyLookupFactory/str !-- org.apache.solr.spelling.suggest.fst --
str name="dictionaryImpl"DocumentDictionaryFactory/str !-- org.apache.solr.spelling.suggest.HighFrequencyDictionaryFactory -- -solr6.5windows安装
str name="field"cat/str
str name="weightField"price/str
str name="suggestAnalyzerFieldType"string/str
/lst
/searchComponent
requestHandler name="/suggest" class="solr.SearchHandler" startup="lazy"
lst name="defaults"
str name="suggest"true/str
str name="suggest.count"10/str
/lst
arr name="components"
strsuggest/str
/arr
/requestHandler
把这些全部删除,然后保存solrconfig.xml文件。
接下来把managed-schema拷贝一份,重命名为schema.xml (原文件不要删除),打开并找到以下位置:
只保留_version_和_root_节点,然后把所有的field,dynamicField和copyField全部删除,添加以下的部分:
field name="id" type="int" indexed="true" stored="true" required="true" multiValued="false" /
field name="username" type="text_ik" indexed="true" stored="true"/
field name="email" type="text_ik" indexed="true" stored="true"/
field name="password" type="text_general" indexed="true" stored="true"/
field name="salt" type="text_general" indexed="true" stored="true"/
field name="ip" type="text_general" indexed="true" stored="true"/
field name="site" type="text_general" indexed="true" stored="true"/
field name="keyword" type="text_ik" indexed="true" stored="false" multiValued="true"/
copyField source="username" dest="keyword"/
copyField source="email" dest="keyword"/
uniqueKeyid/uniqueKey
这里的uniqueKey是配置文件中原有的,用来指定索引字段,必须保留。新建了一个字段名为keyword,它的用途是联合查询,即当需要同时以多个字段做关键字查询时,可以用这一个字段名代替,增加查询效率,下面的copyField即用来指定复制哪些字段到keyword。注意keyword这样的字段,后面的multiValued属性必须为true。-solr6.5windows安装
username和email以及keyword这三个字段,用来检索查询关键字,它们的类型我们指定为text_ik,这是一个我们创造的类型,因为solr虽然内置中文分词,但效果并不好,我们需要添加IKAnalyzer中文分词引擎来查询中文。在下载IKAnalyzer for solr5的源码包,然后使用Maven编译,得到一个文件IKAnalyzer-5.0.jar,把它放入solr-5.5.0/server/solr-webapp/webapp/WEB-INF/lib目录中,然后在solrconfig.xml的fieldType部分加入以下内容:-solr6.5windows安装
fieldType name="text_ik" class="solr.TextField"
analyzer type="index" useSmart="false" class="org.wltea.analyzer.lucene.IKAnalyzer"/
analyzer type="query" useSmart="true" class="org.wltea.analyzer.lucene.IKAnalyzer"/
/fieldType
保存后,core的配置就算完成了,不过要导入mysql数据,我们还需要在mysql网站上下载mysql-connector-java-bin.jar库文件,连同solr-5.5.0/dist目录下面的solr-dataimporthandler-5.5.0.jar,solr-dataimporthandler-extras-5.5.0.jar两个文件,全部拷贝到solr-5.5.0/server/solr-webapp/webapp/WEB-INF/lib目录中,然后重启solr,就可以开始数据导入工作了。-solr6.5windows安装