你能帮我使用 Tomcat 配置 Apache Solr 以及如何使用 Solr 在 MS SQL 数据库中建立索引吗?配置 Tomcat 以在 Tomcat 中运行 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 的堆内存量。
第五步:启动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" />)