Java 使用tomcat 6.0的Apache solr配置

Java 使用tomcat 6.0的Apache solr配置,java,apache,solr,Java,Apache,Solr,您能否帮助我使用Tomcat配置ApacheSolr,以及如何使用Solr在MS SQL数据库中建立索引。 配置Tomcat以在Tomcat中运行ApacheSolr的步骤是什么。以下是一步一步的过程 第1部分:使用TOMCAT设置SOLR 步骤1:下载Solr。这只是一个zip文件 步骤2:从SOLR_HOME_DIR/dist/apache-SOLR-1.3.0.war复制到tomcat webapps目录:$CATALINA_HOME/webapps/SOLR.war–注意war文件名的更

您能否帮助我使用Tomcat配置ApacheSolr,以及如何使用Solr在MS SQL数据库中建立索引。
配置Tomcat以在Tomcat中运行ApacheSolr的步骤是什么。

以下是一步一步的过程

第1部分:使用TOMCAT设置SOLR

步骤1:下载Solr。这只是一个zip文件

步骤2:从SOLR_HOME_DIR/dist/apache-SOLR-1.3.0.war复制到tomcat webapps目录:$CATALINA_HOME/webapps/SOLR.war–注意war文件名的更改。这很重要

步骤3:在您选择的位置创建solr主目录。这就是solr安装的配置所在。最简单的方法是将SOLR_HOME_DIR/examples/SOLR目录复制到SOLR HOME容器所在的位置。说把它放在C:\solr中

第4步:希望您已经设置了环境变量,如果没有,请设置JAVA_HOME、JRE_HOME、CATALINA_OPTS、CATALINA_HOME。请注意,CATALINA_HOME指的是您的Tomcat目录,CATALINA_OPTS指的是您希望提供给Solr的堆内存量

步骤5:启动tomcat。注意,这只是允许tomcat解压war文件所必需的。如果你在$CATALINA_HOME/webapps下查看,现在应该有一个solr目录

步骤6:停止tomcat

步骤7:进入solr目录并编辑WEB-INF/WEB.xml。向下滚动,直到看到如下所示的条目:

<!-- People who want to hardcode their "Solr Home" directly into the
     WAR File can set the JNDI property here...
 -->
<!--
  <env-entry>
     <env-entry-name>solr/home</env-entry-name>
     <env-entry-value>/Path/To/My/solr/Home/solr/</env-entry-value>
     <env-entry-type>java.lang.String</env-entry-type>
  </env-entry>
-->

设置Solr home(例如:C:\Solr)并取消对env条目的注释

第八步:再次启动Tomcat,事情应该会进展顺利。您应该能够通过尝试url来验证solr是否正在运行

第2部分:使用数据导入处理程序使用MSSQL服务器设置SOLR

步骤1:下载Microsoft SQL Server JDBC驱动程序3.0。只需提取内容。在solr主目录下创建一个文件夹(例如:C:\solr\lib)。将文件sqljdbc4.jar从上面下载的归档文件复制到其中

步骤2:所以在Solr home下,需要的基本目录是conf和lib。在第1部分第3步&lib中可能得到的第一个conf是在第2部分第1步中创建的目录

第三步。转到conf目录。请在编辑器中打开3个文件:data-config.xml、schema.xml和solrconfig.xml

第四步。首先编辑data-config.xml。放置SQL查询、数据库名称、服务器名称等。例如:

•   <dataConfig>
•   <dataSource type="JdbcDataSource" driver="com.microsoft.sqlserver.jdbc.SQLServerDriver" url="jdbc:sqlserver://X.Y.Z.U:1433;databaseName=myDB" user="test" password="tester" /> 
•   <document>
•   <entity name="Text" query="select DocumentId, Data from Text">
•   <field column="DocumentId" name="DocumentId" /> 
•   <field column="Data" name="Data" /> 
•   </entity>
•   </document>
•   </dataConfig>
•
•    
•   
•   
•    
•    
•   
•   
•   
步骤5:告诉Solr我们的data-config.xml文件。这可以通过向solrconfig.xml文件(即solr配置文件)添加请求处理程序来实现。 将以下requesthandler添加到solrconfig.xml:

•   <requestHandler name="/dataimport"   class="org.apache.solr.handler.dataimport.DataImportHandler">
•   <lst name="defaults">
•   <str name="config">C:\solr\conf\data-config.xml</str> 
•   </lst>
•   </requestHandler>
•
•   
•C:\solr\conf\data-config.xml
•   
•   
第6步:配置schema.xml-在这个文件中,您可以做一些事情,如设置字段的数据类型、设置搜索的唯一/主键等

步骤7:启动Tomcat

步骤8:现在访问并开始完整导入

一些方便的注释:

    •   There are a number of reasons a data import could fail, most likely due to problem with
 the configuration of data-config.xml. To see for sure what's going on you'll have to look in
 C:\tomcat6\logs\catalina.*.

    •   If you happen to find that your import is failing due to system running out of memory,
 however, there's an easy, SQL Server specific fix. Add responseBuffering=adaptive and
 selectMethod=cursor to the url attribute of the dataSource node in data-config.xml. That stops the
 JDBC driver from trying to load the entire result set into memory before reads can occur.

    •   Note that by default the index gets created in C:\Tomcat6\bin\solr\data\index. To change this path
 just edit solrconfig.xml & change <dataDir>${solr.data.dir:./solr/data}</dataDir>.

    •   In new Solr versions, I think 3.0 and above you have to place the 2 data import handler
 jars in your solr lib directory (i.e. for example apache-solr-dataimporthandler-3.3.0.jar & apache-
solr-dataimporthandler-extras-3.3.0.jar). Search for them in your Solr zip you downloaded. In older
 Solr versions this is not required because they are bundled with solr.war. Since we have placed the
 data import handlers in the lib directory so we need to specify their paths in solrconfig.xml. Add
 this line to solrconfig.xml: (Example: <lib dir="C:/solr/lib/" regex="apache-solr-dataimporthandler-
\d.*\.jar" />)
•数据导入失败的原因有很多,很可能是由于
data-config.xml的配置。要确定发生了什么事,你得去看看
C:\tomcat6\logs\catalina.*。
•如果您碰巧发现由于系统内存不足而导致导入失败,
但是,有一个简单的、特定于SQL Server的修复程序。添加响应缓冲=自适应和
selectMethod=指向data-config.xml中数据源节点的url属性的光标。这就停止了
JDBC驱动程序无法在读取之前尝试将整个结果集加载到内存中。
•请注意,默认情况下,索引是在C:\Tomcat6\bin\solr\data\index中创建的。要更改此路径,请执行以下操作:
只需编辑solrconfig.xml&change${solr.data.dir:./solr/data}。
•在新的Solr版本中,我认为3.0及以上版本必须放置2个数据导入处理程序
solr lib目录中的jar(例如apache-solr-dataimporthandler-3.3.0.jar和apache-
solr-dataimporthandler-extras-3.3.0.jar)。在下载的Solr zip中搜索它们。老年人
Solr版本这不是必需的,因为它们与Solr.war捆绑在一起。因为我们已经把
数据导入处理程序位于lib目录中,因此我们需要在solrconfig.xml中指定它们的路径。添加
这一行指向solrconfig.xml:(示例:)

Hi Yavar,我在导入数据时发现以下错误。HTTP Status 500-null java.lang.AbstractMethodError位于org.apache.solr.handler.RequestHandlerBase.HandlerRequestHi Vishal,如果您打开另一个问题,您可以将您在日志中得到的整个错误粘贴到日志中,这样可能会有其他人知道这一点,这会更好。这将是一个更好的方法,也请粘贴您得到的整个错误,而不是jsut一个片段。嗨,Yavar,我添加了带有整个错误的新问题,所以请检查它,让我做什么。谢谢。嗨,Vishal,我看到了,但无法准确定位错误。我建议你最好的选择:)加入solr邮件列表(访问solr网站)。如果你把你的问题贴在那里,它将非常快地为你提供帮助,因为在堆栈溢出方面,很少有Solr专家。在邮件列表中,甚至Lucene/Solr的创建者也会回答您的问题。另外,根据评论,如果你能在stackoverflow上发布的新问题中提供你的配置文件,这将真正帮助我找到错误。请附上您的配置文件。嗨,Yavar,我添加了一个新问题,这是我的配置文件代码。那么,你能检查一下n是否能给我一些建议吗?你是否已经完成了中显示的步骤?只需交换指定MySQL的驱动程序部分,然后使用SQLServer驱动程序。我很乐意回答您提出的任何更具体的问题!我建议您使用Solr1.4,第一个候选版本实际上已经发布到