1.8. 搜索插件安装¶
3.0 版本新增。
CouchDB 可以使用嵌入 Apache Lucene 的外部 Java 服务构建和查询全文搜索索引。 通常,此服务安装在与 CouchDB 相同的主机上,并通过环回网络与其通信。
搜索插件与 Java JDK 6、7 和 8 运行时兼容。 从源代码构建版本需要 JDK 6。 **它不适用于任何更新版本的 Java。** 对此表示歉意。
1.8.1. 二进制包的安装¶
捆绑了搜索插件所有必要依赖项的二进制包可在 GitHub 上获得。 每个版本中的文件应解压缩到 Java 类路径上的目录中。 如果您还没有设置类路径,或者您希望显式设置 Clouseau 的类路径位置,则添加以下行
-classpath '/path/to/clouseau/*'
到下面的服务器命令。 如果 clouseau 安装在 /opt/clouseau
中,则该行将是
-classpath '/opt/clouseau/*'
该服务期望找到几个名为 clouseau.ini
和 log4j.properties
的配置文件,其内容如下
clouseau.ini:
[clouseau]
; the name of the Erlang node created by the service, leave this unchanged
name=[email protected]
; set this to the same distributed Erlang cookie used by the CouchDB nodes
cookie=monster
; the path where you would like to store the search index files
dir=/path/to/index/storage
; the number of search indexes that can be open simultaneously
max_indexes_open=500
log4j.properties:
log4j.rootLogger=debug, CONSOLE
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern=%d{ISO8601} %c [%p] %m%n
一旦这些文件到位,就可以使用以下调用启动服务
java -server \
-Xmx2G \
-Dsun.net.inetaddr.ttl=30 \
-Dsun.net.inetaddr.negative.ttl=30 \
-Dlog4j.configuration=file:/path/to/log4j.properties \
-XX:OnOutOfMemoryError="kill -9 %p" \
-XX:+UseConcMarkSweepGC \
-XX:+CMSParallelRemarkEnabled \
com.cloudant.clouseau.Main \
/path/to/clouseau.ini
1.8.2. Chef¶
CouchDB cookbook 可以从源代码构建搜索插件,并将其安装在服务器上,与 CouchDB 并存。
1.8.3. Kubernetes¶
通过 Helm 图表 在 Kubernetes 上运行 CouchDB 的用户可以通过在图表值中设置 enableSearch: true
将搜索服务添加到每个 CouchDB Pod 中。
1.8.4. 额外细节¶
在 搜索用户指南 中提供了有关使用此插件创建和查询全文索引的详细信息。
插件的源代码和额外的配置文档可在 GitHub 上获得,地址为 https://github.com/cloudant-labs/clouseau。