`
wanglihu
  • 浏览: 915486 次
  • 性别: Icon_minigender_1
  • 来自: 黑龙江
社区版块
存档分类

基于源码搭建solr搜索服务器

阅读更多
基于源码搭建的好处的就是,我们在开发过程中可以方便地进行调试跟踪,这样也能够便于更深入地了解Solr框架的执行机制。Solr是基于Lucene这个开源搜索引擎库开发的框架,通过了解Solr的源代码,你可以更深入地熟悉如何在Lucene之上构建适合自己的搜索应用,甚至你完全可以将Solr改造成自己需要的应用程序。一般来说,我们使用Solr搭建搜索服务器的时候,完全可以不需要熟悉Lucene是怎么样实现索引和全文检索的,但是在Solr上进行开发调试,如调试搜索的相关度时,就需要对Lucene有一定的了解,才能在调优的过程中事半功倍。

基于源码的搭建,我采用了一种Lucene和Solr的源代码都可以进行修改,即将Lucene和Solr的代码导入的开发环境中。具体如何导入,因为代码都是开源的,你可以使用任何方法实现,不再累述。这里,我们简单说一下,我将solr和Lucene分别导入到了两个工程中:Lucene Java Project、Solr Web Project。我把工程的.classpath文件粘贴一下,以供参考:

Lucene Java Project的.classpath文件内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
	<classpathentry kind="src" path="src/lucene/src/java"/>
	<classpathentry kind="src" path="src/lucene/contrib/analyzers/common/src/java"/>
	<classpathentry kind="src" path="src/lucene/contrib/analyzers/common/src/test"/>
	<classpathentry kind="src" path="src/lucene/contrib/analyzers/smartcn/src/java"/>
	<classpathentry kind="src" path="src/lucene/contrib/analyzers/smartcn/src/test"/>
	<classpathentry kind="src" path="src/lucene/contrib/analyzers/stempel/src/java"/>
	<classpathentry kind="src" path="src/lucene/contrib/analyzers/stempel/src/test"/>
	<classpathentry kind="src" path="src/lucene/contrib/benchmark/src/java"/>
	<classpathentry kind="src" path="src/lucene/contrib/benchmark/src/test"/>
	<classpathentry kind="src" path="src/lucene/contrib/demo/src/java"/>
	<classpathentry kind="src" path="src/lucene/contrib/demo/src/test"/>
	<classpathentry kind="src" path="src/lucene/contrib/facet/src/java"/>
	<classpathentry kind="src" path="src/lucene/contrib/facet/src/test"/>
	<classpathentry kind="src" path="src/lucene/contrib/facet/src/examples"/>
	<classpathentry kind="src" path="src/lucene/contrib/grouping/src/java"/>
	<classpathentry kind="src" path="src/lucene/contrib/grouping/src/test"/>
	<classpathentry kind="src" path="src/lucene/contrib/highlighter/src/java"/>
	<classpathentry kind="src" path="src/lucene/contrib/highlighter/src/test"/>
	<classpathentry kind="src" path="src/lucene/contrib/icu/src/java"/>
	<classpathentry kind="src" path="src/lucene/contrib/icu/src/tools/java"/>
	<classpathentry kind="src" path="src/lucene/contrib/icu/src/test"/>
	<classpathentry kind="src" path="src/lucene/contrib/instantiated/src/java"/>
	<classpathentry kind="src" path="src/lucene/contrib/instantiated/src/test"/>
	<classpathentry kind="src" path="src/lucene/contrib/join/src/java"/>
	<classpathentry kind="src" path="src/lucene/contrib/join/src/test"/>
	<classpathentry kind="src" path="src/lucene/contrib/memory/src/java"/>
	<classpathentry kind="src" path="src/lucene/contrib/memory/src/test"/>
	<classpathentry kind="src" path="src/lucene/contrib/misc/src/java"/>
	<classpathentry kind="src" path="src/lucene/contrib/misc/src/test"/>
	<classpathentry kind="src" path="src/lucene/contrib/queries/src/java"/>
	<classpathentry kind="src" path="src/lucene/contrib/queries/src/test"/>
	<classpathentry kind="src" path="src/lucene/contrib/queryparser/src/java"/>
	<classpathentry kind="src" path="src/lucene/contrib/queryparser/src/test"/>
	<classpathentry kind="src" path="src/lucene/contrib/remote/src/java"/>
	<classpathentry kind="src" path="src/lucene/contrib/remote/src/test"/>
	<classpathentry kind="src" path="src/lucene/contrib/spatial/src/java"/>
	<classpathentry kind="src" path="src/lucene/contrib/spatial/src/test"/>
	<classpathentry kind="src" path="src/lucene/contrib/spellchecker/src/java"/>
	<classpathentry kind="src" path="src/lucene/contrib/spellchecker/src/test"/>
	<classpathentry kind="src" path="src/lucene/contrib/xml-query-parser/src/java"/>
	<classpathentry kind="src" path="src/lucene/contrib/xml-query-parser/src/test"/>
	<classpathentry kind="src" path="src/lucene/contrib/xml-query-parser/src/demo/java"/>
	<classpathentry kind="src" path="src/lucene/test-framework/src/java"/>
	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
	<classpathentry kind="con" path="org.eclipse.jdt.USER_LIBRARY/Contributions Dependences"/>
	<classpathentry kind="con" path="org.eclipse.jdt.USER_LIBRARY/Lucene Contrib Dependences"/>
	<classpathentry kind="con" path="org.eclipse.jdt.USER_LIBRARY/JUnit 4.7"/>
	<classpathentry kind="output" path="bin"/>
</classpath>

Solr Web Project的.classpath文件内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
	<classpathentry kind="src" path="src/solr/solrj/src/java"/>
	<classpathentry kind="src" path="src/solr/solrj/src/test"/>
	<classpathentry kind="src" path="src/solr/core/src/java"/>
	<classpathentry kind="src" path="src/solr/core/src/test"/>
	<classpathentry kind="src" path="src/solr/contrib/analysis-extras/src/java"/>
	<classpathentry kind="src" path="src/solr/contrib/analysis-extras/src/test"/>
	<classpathentry kind="src" path="src/solr/contrib/clustering/src/java"/>
	<classpathentry kind="src" path="src/solr/contrib/clustering/src/test"/>
	<classpathentry kind="src" path="src/solr/contrib/dataimporthandler/src/java"/>
	<classpathentry kind="src" path="src/solr/contrib/dataimporthandler/src/test"/>
	<classpathentry kind="src" path="src/solr/contrib/dataimporthandler-extras/src/java"/>
	<classpathentry kind="src" path="src/solr/contrib/dataimporthandler-extras/src/test"/>
	<classpathentry kind="src" path="src/solr/contrib/extraction/src/java"/>
	<classpathentry kind="src" path="src/solr/contrib/extraction/src/test"/>
	<classpathentry kind="src" path="src/solr/contrib/langid/src/java"/>
	<classpathentry kind="src" path="src/solr/contrib/langid/src/test"/>
	<classpathentry kind="src" path="src/solr/contrib/uima/src/java"/>
	<classpathentry kind="src" path="src/solr/contrib/uima/src/test"/>
	<classpathentry kind="src" path="src/solr/contrib/velocity/src/java"/>
	<classpathentry kind="src" path="src/solr/contrib/velocity/src/test"/>
	<classpathentry kind="src" path="src/solr/test-framework/src/java"/>
	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
	<classpathentry kind="con" path="melibrary.com.genuitec.eclipse.j2eedt.core.MYECLIPSE_JAVAEE_5_CONTAINER"/>
	<classpathentry kind="con" path="org.eclipse.jdt.USER_LIBRARY/Solr Contrib Dependences"/>
	<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/apache-solr-noggit-r1099557.jar"/>
	<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/commons-codec-1.5.jar"/>
	<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/commons-csv-1.0-SNAPSHOT-r966014.jar"/>
	<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/commons-fileupload-1.2.1.jar"/>
	<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/commons-httpclient-3.1.jar"/>
	<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/commons-io-1.4.jar"/>
	<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/commons-lang-2.4.jar"/>
	<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/easymock-2.2.jar"/>
	<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/geronimo-stax-api_1.0_spec-1.0.1.jar"/>
	<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/guava-r05.jar"/>
	<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/jcl-over-slf4j-1.6.1.jar"/>
	<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/junit-4.7.jar"/>
	<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/log4j-over-slf4j-1.6.1.jar"/>
	<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/servlet-api-2.4.jar"/>
	<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/slf4j-api-1.6.1.jar"/>
	<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/slf4j-jdk14-1.6.1.jar"/>
	<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/wstx-asl-3.2.7.jar"/>
	<classpathentry combineaccessrules="false" kind="src" path="/lucene35"/>
	<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/core-3.1.1.jar"/>
	<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/jetty-6.1.26-patched-JETTY-1340.jar"/>
	<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/jetty-util-6.1.26-patched-JETTY-1340.jar"/>
	<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/jsp-2.1-glassfish-2.1.v20091210.jar"/>
	<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/jsp-2.1-jetty-6.1.26.jar"/>
	<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/jsp-api-2.1-glassfish-2.1.v20091210.jar"/>
	<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/servlet-api-2.5-20081211.jar"/>
	<classpathentry kind="output" path="WebRoot/WEB-INF/classes"/>
</classpath>

搭建起来开发环境,你可以更加深入的学习Solr了。
分享到:
评论

相关推荐

    利用Solr搭建你的搜索引擎

    3. **启动Solr服务器**:运行Solr提供的`start.jar`或者通过命令行工具启动Solr服务器,这将启动一个默认的Solr实例。 4. **创建核心(Core)**:Solr的核心是处理特定数据集的基本单位。你可以根据需求创建多个...

    solr搭建搜索

    在本主题中,我们将深入探讨如何搭建Solr搜索环境以及相关知识点。 首先,我们需要下载并安装Solr。这通常包括获取最新版本的Solr压缩包,解压到指定目录,并在服务器上启动Solr服务器。启动Solr后,我们会看到一个...

    Apache Solr 架设搜索服务器 学习笔记

    这篇学习笔记将深入探讨如何搭建 Solr 服务器,并利用其特性进行高效的索引和查询操作。 ### 一、Solr 的核心概念 1. **Core(核心)**:Solr 的工作单元,类似于数据库中的数据库,每个 Core 都有自己的配置和...

    solr-zookeeper-tomcat集群搭建

    而Tomcat作为Java应用服务器,常被用来运行Solr服务器。本文将详细介绍如何搭建Solr-Zookeeper-Tomcat集群。 一、Zookeeper简介与安装 Zookeeper是Apache Hadoop项目的一个子项目,用于分布式系统的协调服务。它...

    java进阶Solr从基础到实战

    Solr它是一种开放源码的、基于 Lucene 的搜索服务器,可以高效的完成全文检索的功能。在本套课程中,我们将全面的讲解Solr,从Solr基础到Solr高级,再到项目实战,基本上涵盖了Solr中所有的知识点。 主讲内容 章节一...

    solr5.4开发环境完整配置

    Solr 5.4 是一个基于 Lucene 的全文搜索引擎服务器,它提供了强大的搜索功能和管理接口。在本文中,我们将详细探讨如何配置 Solr 5.4 开发环境,包括安装、配置、以及数据导入,同时也会提及 mmseg4j 分词器的使用。...

    solr解压版安装包

    它是基于Java的,能够高效、灵活地处理大量数据的搜索解决方案,广泛应用于网站、电商、文档检索等多个领域。Solr的核心功能包括索引、搜索、排序、过滤和分页等,它还支持多种数据源的集成,如数据库、文件系统和...

    Apache Solr 搜索架构分析外部设计篇PDF

    Apache Solr是一款基于Java语言开发的开源企业级搜索服务器,它基于Lucene Java搜索库,提供XML/HTTP API、缓存、复制以及网页管理界面等功能。Solr最初由CNET Networks开发,并于2006年12月22日发布1.1版本后加入...

    solr与java结合的小例子

    3. **solr.rar**:这很可能是Solr的源码或配置文件,包含了Solr服务器的运行环境,可能包括Solr实例、配置文件(如solrconfig.xml和schema.xml)以及可能的示例数据。 4. **SolrWeb.rar**:这可能是一个包含Solr Web...

    solr教材-PDF版

    - **4.5.3 Changing other Connection Settings**:调整SolrJ与Solr服务器之间的连接设置。 - **4.5.4 EmbeddedSolrServer**:在同一个JVM中运行的Solr服务器客户端。 #### 五、Solr的实际应用测试报告 - **5.1 ...

    solr 5.0搭建 和使用 ik分词

    本篇文章将详细讲解如何搭建Solr 5.0,并使用IK分词器进行中文分词处理,提升搜索效果。 首先,我们需要下载Solr 5.0的安装包。你可以访问Apache官方站点或者镜像站点获取最新版本的Solr。解压缩下载的文件后,你会...

    SpringBoot集成Solr全文检索,示例工程源码,ik分词插件

    解压后,启动Solr服务器,通常在解压目录下的`bin`目录执行`solr start -e cloud`命令来启动分布式模式的Solr。 2. **添加依赖**:在SpringBoot项目中,我们需要在`pom.xml`文件中添加Solr的依赖。这里可能会用到`...

    solr部署教程

    5. 启动Solr服务器:通过bin/solr start命令启动默认的单节点配置。 6. 测试Solr:访问管理界面,如http://localhost:8983/solr,查看是否正常运行。 7. 配置中文分词器:如IKAnalyzer,需在Solr的配置文件中添加...

    solr mmesg 案例

    5. **测试与验证**:启动Solr服务器,向新创建的核心`mmesg_core`中导入数据,并使用Solr的Admin界面进行查询,验证MMESG分词器是否正常工作。 6. **多核心配置**:在`solrconfig.xml`中,配置多个Solr核心。每个...

    dubbo、redis、solr、activeMQ、freemarker、nginx、管理系统、搜索系统

    2. **SpringBoot**: SpringBoot是基于Spring框架的快速开发工具,它简化了Spring应用的初始搭建以及开发过程。通过自动配置和起步依赖,SpringBoot可以让你快速创建独立运行的、生产级别的Java应用。 3. **Redis**:...

    solr4.7+中文分词器IK Analyzer 2012FF_hf1

    Solr 4.7 是一个基于 Lucene 的全文检索服务器,它提供了强大的搜索功能和配置灵活性。IK Analyzer 2012FF_hf1 是一个针对中文的分词器,专为处理中文文本而设计,旨在提高中文文本的索引和搜索效率。这个组合在描述...

    跟益达学Solr5之增量索引MySQL数据库表数据

    此外,`solr_home`压缩包可能包含了Solr的配置文件、核心目录(collection1)以及其他必要的文件,用于搭建和运行Solr服务器。在解压后,通常需要配置`solr.in.sh`或`solr.in.cmd`以指定Java环境和Solr的启动参数。 ...

    org.apache.servicemix.bundles.solr-solrj-4.6.1_1.zip

    SolrJ是Apache Solr的Java客户端库,它允许开发者在Java应用程序中与Solr搜索引擎进行交互,包括创建、更新、查询索引以及管理Solr服务器。 描述中提到的 "maven-parent.zip" 暗示这个项目采用了Maven作为构建工具...

Global site tag (gtag.js) - Google Analytics