Apache Solr初体验一

2019-03-27 01:10|来源: 网路

 

由于工作原因,这段时间接触到solr,一个基于lucene的企业级搜索引擎。不怎么了解它的童鞋可以去GOOGLE一下。

    下面开始正题:

    1)要开始solr的学习,首先当然是要下载它啦(这是一句废话),可以到http://www.apache.org/dyn/closer.cgi/lucene/solr/这里去下载,最新的是1.4.1(现在已经是3.4了,但依然适用)。下完后当然要解压啦(这也是废话)。我们看到它的结构是这样的。


 相信搞JAVA的同志们应该都大概了解对应的文件夹的意思啦,在dist里面是它的一些JAR包,当中包含了一个war包,这个是我们做例子时用到的项目。直接把它丢到tomcat的webapps里面去。

    example目录里面有一些solr的索引数据,它自带了一个jetty方便运行,可以直接运行java -jar start.jar就可以运行jetty,但jetty的默认端口是8983,这个是跟tomcat不同的地方,要注意啦。

    2)搞定了这些之后,那么我们应该继续来试运行一下这个东西啦。solr最重要的东西就是solr home,这个东西指定了solr建立的索引文件的存放位置。不知道是什么东西,可以先不用管它,一步步来也许就会明白了。

    进到tomcat文件夹conf\Catalina\localhost这个文件夹内,建立一个solr.xml(其实名字是随便的,这里起的名字跟以后访问的项目名字一致,不过为了好找,还是跟部署的项目名一样吧),这里面的内容呢,其实很简单,就和下面类似:

<Context docBase="D:/server/apache-tomcat-6.0.32/webapps/apache-solr-1.4.1.war" reloadable="true">  
<Environment name="solr/home" type="java.lang.String" value="E:/framework/libPack/apache-solr-1.4.1/example/solr" override="true"/>
</Context>

     这个Context相信大家都知道罗,它是指定了war包的位置,当启动tomcat后它会自动被部署到webapps目录下,这也是eclipse所集成tomcat用的部署方式。而reloadable="true"则表明可以重新加载,即当这个部署内容改变时,它会自动进行加载。

    下面的solr/home是重点啦,type是固定的,先不管,value指定的就是它用的索引目录。override当然就是覆盖啦,如果存在则覆盖。

    这个solr/home其实在solr的下载包中已经带有一个,我们可以找到solr目录下的example/solr这个目录,下面就是我们所说的solr/home,其实当中最重要的还是config目录下的solrconfig.xml,这个是solr的主要配置文件,可以在里面找到<dataDir>${solr.data.dir:./solr/data}</dataDir>这样一句,它指定了索引记录放置的位置,我们启动tomcat后它会在我们当前的目录下生成solr/data文件夹,里面就是索引文件。如果我们从tomcat的bin启动,那么它会在bin目录下生成solr/data文件夹,可以根据自己需要进行修改,只要把./solr/data改成想让它放在目录就可以了。

    这样配置完成后,我们启动tomcat之后在浏览器输入http://localhost:8080/solr/admin就可以看到solr的管理界面啦。



 

这样我们的配置就大功告成了。

 


转自:http://www.cnblogs.com/ibook360/archive/2011/11/22/2258686

相关问答

更多
  • 您可以通过向hook_apachesolr_query_alter()中的查询添加过滤器来执行此操作: /** * Implementation of hook_apachesolr_query_alter(). * * @param DrupalSolrQueryInterface $query * @see apachesolr.interface.inc */ function yourmodule_apachesolr_query_alter(DrupalSolrQueryInterfa ...
  • 术语有点随意使用,因此您可能会发现可以互换使用其中一些术语的文本。 Solr核心 核心是生活在单个服务器上的一组命名文档。 服务器可以有多个核心。 核心可以复制到其他服务器(这是手动完成时的“旧式”复制)。 Solr系列 集合是一组核心,从一个到多个。 这是“这些核心共同构成整个集合”的逻辑描述。 这是SolrCloud引入的,因为这是Solr第一次为您处理群集。 逻辑与物理 集合是一个逻辑索引 - 它可以跨越多个核心。 每个核心都是一个物理索引(它的磁盘上有Lucene的实际索引文件)。 当您与核心进行交 ...
  • Solr需要在Java EE应用程序服务器中运行。 您可以使用Jetty或Tomcat 。 Nginx将通过AJP或simliar充当代理,将所有RESTless请求转发给Solr。 我没有使用我的ajp与nginx,但我已经读过这个 。 基本上,您将同时运行所有Java EE应用程序服务器,Rails服务器,nginx,passenger和ajp代理。 您还可以设置代理通行证,这里有一个教程 。 探索不同的选项,看看哪一个是你的赌注。 Solr needs to run in a Java EE appl ...
  • 好吧,如果你想看看Solr如何工作,包括你点击搜索按钮后所做的一切比开始学习的最好方法Lucene.Solr是Lucene的一个包装,增加了一些功能,使其用户界面更容易工作用。 你需要知道各种各样的事情 Solr / Lucene如何索引数据 它如何解析数据。 这有很多数据处理程序。 它如何读取用户输入的查询。 我建议你通过Lucene wiki页面和它的各种文件Apache Lucene 一旦熟悉下载源代码,就可以了解它们是如何做到这一点的。 否则,如果您对特定功能有特定问题,请更好地提出问题 Well ...
  • 官方答案是:将其作为独立应用程序运行。 不再支持 从Solr 5.0开始,不再支持在像Tomcat这样的servlet容器中将Solr部署为WAR的支持。 有关如何将Solr安装为独立服务器的信息,请参阅安装Solr 。 关于此举的决定的背景可以在Solr Wiki上找到。 Solr旨在成为服务器而非Java Web应用程序,类似于mysql或Apache Web服务器。 首次创建Solr时,将其设计为Web应用程序是一个方便的选择,以避免编写大量棘手的代码来构建网络层。 如今,这一设计决定已成为限制因素。 ...
  • eDisMax查询解析器默认接受小写运算符。 在solrconfig.xml ,指定该解析器,您还可以明确告诉它接受小写运算符: edismax true
  • 他们今天刚刚宣布您现在可以将群集自定义应用于正在运行的群集 。 请参阅Solr群集自定义页面。 仍不建议手动在正在运行的集群上安装内容(而不是使用集群自定义脚本)。 首先,当需要关闭一个节点进行维护时,新节点将在没有安装自定义软件的情况下重新启动。 其次,群集自定义脚本与Azure通信,支持在打开支持案例时对群集所做的更改。 They just announced today that you can now apply cluster customizations to a running cluster ...
  • 嗯好吃 首先,对于所有这些问题,使用Solr分析工具是你的朋友。 其次,请记住,如果查询和术语是字符相同的100%字符,则Solr仅匹配。 对于以下过滤器
  • 您必须使用keywordTokenizerFactory定义新的字段类型。 Guide about tokenizer can be found from 这里 Guide about tokenizer can be found from 按照以下方式更新您的架构。 在schema.xml文件中
  • 你的问题是关于在solr中使用“自然语言处理”。 你没有说明这对你意味着什么。 这可能意味着:检测语言和启发式词干 在这种情况下,请查看文档: https://cwiki.apache.org/confluence/display/solr/Detecting+Languages+During+Indexing https://cwiki.apache.org/confluence/display/solr/Language+Analysis#LanguageAnalysis-Language-Specif ...