安装和升级 > 安装和配置指南 > 使用 PTC 解决方案安装程序 > 安装 Windchill 解决方案 > 可选产品设置 > Windchill Index Search 安装 > Windchill Index Search 安装后配置 > 配置独立索引搜索服务器
  
配置独立索引搜索服务器
如果已在独立模式下安装索引搜索服务器,则完成以下步骤。
* 
请确保您正在使用 Java 8 或更高版本。否则,您需要在执行以下命令之前设置 SOLR_JAVA_HOME 环境变量:
Windows:SET SOLR_JAVA_HOME=<PATH_TO_JAVA_8>
Unix:export SOLR_JAVA_HOME=<PATH_TO_JAVA_8>
Solr 服务器:启动和停止命令
要启动或停止 Solr 服务器,请执行下列命令:
启动命令
启动 Solr (Windows):
<INDEX_SEARCH_HOME>/bin/Index_Search_Server.bat start
启动 Solr (Unix):
sh <INDEX_SEARCH_HOME>/bin/Index_Search_Server.sh start
停止命令
停止 Solr (Windows):
<INDEX_SEARCH_HOME>/bin/Index_Search_Server.bat stop
停止 Solr (Unix):
sh <INDEX_SEARCH_HOME>/bin/Index_Search_Server.sh stop
创建 Solr 核心 (独立模式)
1. 打开命令提示符,然后使用以下命令启动 Solr:
启动 Solr (Windows):
<INDEX_SEARCH_HOME>/bin/Index_Search_Server.bat start
启动 Solr (Unix):
sh <INDEX_SEARCH_HOME>/bin/Index_Search_Server.sh start
其中,<INDEX_SEARCH_HOME> 为索引搜索服务器的安装目录。
2. 在命令提示符中,导航至 <INDEX_SEARCH_HOME>/solr/bin,并执行以下命令来创建所需模块的核心:
Windchill Index Search
Windows:
solr.cmd create -c wblib -n wblib -d D:\ptc\IndexSearchServer\SolrServer\solr_schemas\wblib
Unix:
solr create -c wblib -n wblib -d /opt/ptc/IndexSearchServer/SolrServer/solr_schemas/wblib
Windchill PartsLink
Windows:
solr.cmd create -c clfstructurelib -n clfstructurelib -d D:\ptc\IndexSearchServer\SolrServer\solr_schemas\clfstructurelib
Unix:
solr create -c clfstructurelib -n clfstructurelib -d /opt/ptc/IndexSearchServer/SolrServer/solr_schemas/clfstructurelib
S1000D
Windows:
solr.cmd create -c sisaadlib -n sisaadlib -d D:\ptc\IndexSearchServer\SolrServer\solr_schemas\sisaadlib
Unix:
solr create -c sisaadlib -n sisaadlib -d /opt/ptc/IndexSearchServer/SolrServer/solr_schemas/sisaadlib
* 
PTC 建议您为 Windchill Index SearchWindchill PartsLink 和 S1000D 创建核心,即使未安装可选模块也应如此。如果您稍后决定安装这些模块,则不需要创建各个核心。
3. 打开 Solr 管理器界面,并验证 Solr 正在运行以及核心可用:
http://<SOLR_HOSTNAME>:<SOLR_PORT>/solr
更新独立服务器的 Solr 架构 (可选)
要更新 Solr 架构,请完成以下步骤:
1. 导航至 <INDEX_SEARCH_HOME>/solr/server/solr,并进行所需更新。
2. 打开 Solr 管理器界面并选择 Core Admin
3. 选择架构已更新的核心,然后单击 Reload
配置 Solr 的基本验证 (独立模式)
1. 可使用以下命令停止 Solr:
Windows
<INDEX_SEARCH_HOME>/bin/Index_Search_Server.bat stop
Unix
sh <INDEX_SEARCH_HOME>/bin/Index_Search_Server.sh stop
2. 打开下列文件:
<INDEX_SEARCH_HOME>/solr/server/etc/webdefault.xml
接着,编辑该文件的内容,如下所示 (发生更改的部分已经突出显示):
<security-constraint>
<web-resource-collection>
<web-resource-name>Disable TRACE</web-resource-name>
<url-pattern>/*</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>admin</role-name>
</auth-constraint>
</security-constraint>
<login-config>
<auth-method>BASIC</auth-method>
<realm-name>Solr Realm</realm-name>
</login-config>
3. 打开下列文件:
<INDEX_SEARCH_HOME>/solr/server/etc/jetty.xml
在结尾处的 </Configure> 标记之前添加以下部分:
<Call name="addBean">
<Arg>
<New class="org.eclipse.jetty.security.HashLoginService">
<Set name="name">Solr Realm</Set>
<Set name="config"><SystemProperty name="jetty.home" default="."/>/etc/realm.properties</Set>
<Set name="refreshInterval">0</Set>
</New>
</Arg>
</Call>
4. 使用 Jetty 提供的以下实用程序生成加密格式的密码:
a. 打开命令提示符,然后导航至 <INDEX_SEARCH_HOME>/solr/server
b. 通过将纯文本密码用作自变量来运行以下命令:
java -cp lib/jetty-util-9.2.13.v20150730.jar org.eclipse.jetty.util.security.Password <用户名> <密码>
例如,运行以下命令:
java -cp lib/jetty-util-9.3.8.v20160314.jar org.eclipse.jetty.util.security.Password solr SolrRocks
输出结果如下所示:
* 
使用此工具时,PTC 建议将 CRYPT 作为最安全的可用加密选项。
5. 创建新文件:
<INDEX_SEARCH_HOME>/solr/server/etc/realm.properties
使用以下格式添加先前步骤中生成的加密密码:
<用户名>: CRYPT:<加密密码>,<角色>
例如:
solr: CRYPT:so3oR2FANmQ4Y,admin
6. 使用以下命令启动 Solr:
Windows
<INDEX_SEARCH_HOME>/bin/Index_Search_Server.bat start
Unix
sh <INDEX_SEARCH_HOME>/bin/Index_Search_Server.sh start
7. 打开 Solr 管理器界面,并验证系统是否会提示您输入用户名和密码:
http://<SOLR_HOSTNAME>:<SOLR_PORT>/solr
更改 Solr 用户或密码
更改 Solr 用户或密码时,您必须更新 Windchill Index Search 客户端和服务器。
1. 打开 Windchill shell 并执行以下命令,以更改 Windchill Index Search 客户端的密码或用户:
xconfmanager -s wt.index.solrAdminUser=<New_User> -t codebase/WEB-INF/conf/index.solrAuth.properties -p
xconfmanager -s wt.index.solrAdminPassword=<New_Password> -t codebase/WEB-INF/conf/index.solrAuth.properties -p
2. 重新启动 Windchill
3. 在命令提示符中,导航至 <INDEX_SEARCH_HOME>/bin 并执行以下命令,以更改 Windchill Index Search 服务器的密码或用户:
Windows:
xconfmanager -s wt.index.server.solrAdminUser=<New_User> -t config/solrserver.properties -p
xconfmanager -s wt.index.server.solrAdminPassword=<New_Password> -t config/solrserver.properties -p
Unix:
sh xconfmanager -s wt.index.server.solrAdminUser=<New_User> -t config/solrserver.properties -p
sh xconfmanager -s wt.index.server.solrAdminPassword=<New_Password> -t config/solrserver.properties -p
4. 请按照上述步骤更新 <INDEX_SEARCH_HOME>/solr/server/etc/realm.properties
5. 重新启动 Solr。
为独立索引搜索服务器 (Solr) 配置 SSL
在开始配置之前,您必须拥有以单个文件形式转换为 PEM 格式的证书和密钥。
* 
如果仅证书文件不可用,您可以选择通过证书和密钥文件生成一个仅证书文件:
1. 使用 keytool 实用程序将 JKS 密钥库转换为 PKCS12 格式:
keytool -importkeystore -srckeystore solr-ssl.keystore.jks -destkeystore solr-ssl.keystore.p12 -srcstoretype jks -deststoretype pkcs12
2. 使用 openssl 命令将 PKCS12 格式的密钥库 (包括证书,但不包括密钥) 转换为 PEM 格式:
openssl pkcs12 -nokeys -in solr-ssl.keystore.p12 -out solr-ssl.cacert.pem
配置 Windchill Index Search 客户端:
1. 打开 Windchill shell 并执行以下命令,以将该协议设置为索引搜索客户端在连接到索引搜索服务器时所使用的 HTTPS:
xconfmanager -s wt.index.solrProtocol=https -t codebase/wt.properties -p
2. 重新启动 Windchill
配置 Windchill Index Search 服务器
1. 将证书 (JKS) 文件复制到 <Index_Search_Home>/solr/server/etc 中。
2. 设置常用的 SSL 相关的系统特性。
要激活 SSL 设置,请取消注释并更新以下文件中以 SOLR_SSL_* 开头的特性集:
Windows:bin\solr.in.cmd
例如:
set SOLR_SSL_KEY_STORE=etc/solr-ssl.keystore.jks
set SOLR_SSL_KEY_STORE_PASSWORD=secret
set SOLR_SSL_TRUST_STORE=etc/solr-ssl.keystore.jks
set SOLR_SSL_TRUST_STORE_PASSWORD=secret
REM Require clients to authenticate
set SOLR_SSL_NEED_CLIENT_AUTH=false
REM Enable clients to authenticate (but not require)
set SOLR_SSL_WANT_CLIENT_AUTH=false
Unix:bin/solr.in.sh
例如:
bin/solr.in.sh example SOLR_SSL_* configuration
SOLR_SSL_KEY_STORE=etc/solr-ssl.keystore.jks
SOLR_SSL_KEY_STORE_PASSWORD=secret
SOLR_SSL_TRUST_STORE=etc/solr-ssl.keystore.jks
SOLR_SSL_TRUST_STORE_PASSWORD=secret
# Require clients to authenticate
SOLR_SSL_NEED_CLIENT_AUTH=false
# Enable clients to authenticate (but not require)
SOLR_SSL_WANT_CLIENT_AUTH=false
其中,"secret" 为创建证书时提供的密码。
如果您想要修改 Solr 密钥库的默认密码,请执行以下步骤以避免 Solr 服务器启动问题:
a. 请确保 Windows 的 solr.in.cmd 或 Unix 的 solr.in.sh 的密码正确。
b. 打开 <INDEX_SEARCH_HOME>/solr/server/etc/jetty-ssl.xml 文件
c. 使用正确的密码更新下列特性值:
<Set name="KeyStorePassword"><Property name="solr.jetty.keystore.password"
default="<enter the correct password>"/></Set>
<Set name="TrustStorePassword"><Property name="solr.jetty.truststore.password"
default="<enter the correct password>"/></Set>
d. 保存 jetty-ssl.xml 文件并启动 Solr 服务器。
3. 将证书文件添加到 JVM 信任存储 (仅限 Windchill 的 JDK/JVM)。
a. 导航至 Java 位置,Windchill 使用该位置验证 <JAVA>/jre/lib/securitycacerts 文件的路径。
b. 导航至 <JAVA>/jre/bin 以导入新的证书。以对 cacerts 具有写入权限的用户身份运行 keytool 实用程序:
keytool -import -file <许可证文件> -alias <唯一名称> -keystore <cacerts 文件路径>
例如:
keytool -import -file D:\SolrWithSSL\solr-5.4.1\server\etc\solr-ssl.cacert.pem -alias Key_Alias -keystore ../lib/security/cacerts
4. Windchill 配置为使用 SSL 时,所有在 Windchill 之外使用的 Java 客户端都需要证书来进行连接。
因此,您必须将证书导入索引搜索服务器所使用的 JVM。这样,索引搜索服务器便可连接到 Windchill 并下载索引文档。
将证书文件添加到 JVM 信任存储 (Solr 服务器的 JDK/JVM):
a. 导航至 Solr 服务器所使用的 Java 位置,以便验证 <JAVA>/jre/lib/securitycacerts 文件的路径。
b. 导航至 <JAVA>/jre/bin 以导入证书。以对 cacerts 具有写入权限的用户身份运行 keytool 实用程序:
keytool -import -file <许可证文件> -alias <唯一名称> -keystore <cacerts 文件路径>
例如:
keytool -import -file D:\SolrWithSSL\solr-5.4.1\server\etc\solr-ssl.cacert.pem -alias Key_Alias -keystore ../lib/security/cacerts
* 
JVM 密钥库的默认密码是 "changeit"。
5. 重新启动 Windchill 和索引搜索服务器,然后导航至 Solr 管理界面以验证 Solr 已运行 SSL。
* 
有关 SSL 的已知问题,请参阅以下站点: