【问题标题】:Apache solr configuration with tomcat 6.0使用 tomcat 6.0 的 Apache solr 配置
【发布时间】:2012-04-19 00:57:59
【问题描述】:

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

【问题讨论】:

  • 您是否完成了wiki.apache.org/solr/DataImportHandler 中显示的步骤?只需更换指定 MySQL 的驱动程序部分并使用 SQLServer 驱动程序。我很乐意回答您的任何更具体的问题!我推荐你使用 Solr 1.4,第一个候选版本实际上是今晚发布。
  • Thomas - 还要确保查看Data Import Handler FAQ sheet,因为有一条关于设置 responseBuffering 属性以避免数据导入处理程序出现内存不足错误的评论。我同意 Eric 关于使用 Solr 1.4 RC 的声明,因为 Shalin 和其他人为数据导入处理程序做出了很多改进(尤其是在增量导入方面)。
  • 使用 Tomcat 配置 Solr - SolrTomcat 对于 SQL 数据库的索引,您可以查看 DataImportHandler
  • 这是另一个简洁的解释值得一提:javacilar.com/2012/08/indexing-mysql-db-using-solr-tomcat.htmlCheers

标签: java apache solr


【解决方案1】:

这里是一步一步的过程,会有所帮助。

第 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 主容器所在的任何位置。说把它放在 C:\solr 中。

第四步:希望你已经设置了环境变量,如果没有,请设置 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 主页(例如:C:\solr)并取消注释 env 条目。

第 8 步:再次启动 Tomcat,事情应该会很顺利。您应该能够通过尝试 url http://localhost:8080/solr/admin/ 来验证 solr 是否正在运行。

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

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

第 2 步:因此,在您的 Solr 主目录下,所需的基本目录是 conf 和 lib。第一个,即您可能在第 1 部分的第 3 步中获得的 conf 和 lib 是您在第 2 部分的第 1 步中创建的目录。

步骤 3. 进入 conf 目录。请在编辑器中打开 3 个文件:data-config.xml、schema.xml 和 solrconfig.xml。

第 4 步。首先编辑 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 配置文件。 将以下请求处理程序添加到 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>

第 6 步:配置 schema.xml - 在此文件中,您可以执行多项操作,例如设置字段的数据类型、设置搜索的唯一键/主键等。

第 7 步:启动 Tomcat

第 8 步:现在访问 http://localhost:8080/solr/admin/dataimport.jsp?handler=/dataimport 并开始您的完整导入。

一些方便的笔记:

    •   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" />)

【讨论】:

  • 您好 Yavar,我在导入数据时发现以下错误。 HTTP 状态 500 - org.apache.solr.handler.RequestHandlerBase.handleRequest 处的 null java.lang.AbstractMethodError
  • 您好 Vishal,如果您打开另一个问题,您可以在其中粘贴您在日志中获得的整个错误,这样可能会帮助其他知道这一点的人可能会有所帮助。那将是一个更好的方法,也请粘贴你得到的整个错误,而不是简单的 sn-p。
  • 嗨 Yavar 我添加了带有整个错误的新问题所以请检查它并让我做什么。谢谢。
  • 嗨 Vishal 我看到了,但无法准确定位错误。我建议你最好的选择 :) 加入 solr 邮件列表(去 solr 网站)。如果您在那里发布您的问题,它将为您提供非常快速的帮助,因为在堆栈溢出时,Solr 专家很少。在邮件列表中,甚至 Lucene/Solr 的创建者都在那里回答您的问题。另外根据评论,如果您可以在您发布在 stackoverflow 上的新问题中提供配置文件,这将真正帮助我找到错误。请附上您的配置文件。
  • 嗨 Yavar 我添加了新问题,这是我的配置文件代码。所以你能检查一下n给我任何建议吗?
猜你喜欢
  • 2016-09-03
  • 2012-09-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-06-26
  • 2011-12-09
  • 1970-01-01
相关资源
最近更新 更多