Couchbase
| 限定名称 | 类型 | 版本 |
|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
安装依赖
(已在 CB Enterprise 5.5.3 环境下测试)
Couchbase 过程依赖于 APOC Extended 库中未包含的客户端库。此依赖项包含在 apoc-couchbase-dependencies-2025.10.0-all.jar 中,可从发布页面下载。下载该文件后,应将其放入 plugins 目录并重启 Neo4j 服务器。
或者,您可以从 maven 仓库将 Couchbase Java SDK 和 Couchbase JVM Core IO 复制到 plugins 目录中。
使用
要与 Couchbase 交互,您可以将连接的主机定义为过程的第一个参数(第二个参数为 bucket,第三个参数为 document_id)。
CALL apoc.couchbase.get('couchbase://Administrator:password@localhost', 'default', 'artist:vincent_van_gogh')
或者,您可以使用与 MongoDB 相同的方式使用配置属性。例如,您可以将以下属性添加到 apoc.conf 文件中。
apoc.couchbase.mykey.username=Administrator apoc.couchbase.mykey.password=password apoc.couchbase.mykey.uri=host1,host2,host3 // here you can define more than one hostname if you're using a cluster apoc.couchbase.mykey.port=8091 // the bootstrapHttpDirectPort (optional)
CALL apoc.couchbase.get('mykey', 'default', 'artist:vincent_van_gogh')
您还可以在 apoc.conf 中定义一些 CouchbaseEnvironment 参数。
apoc.couchbase.connectTimeout=<default=5000> apoc.couchbase.kvTimeout=<default=2500> apoc.couchbase.ioPoolSize=<default=3>
有关这些配置参数的详细说明,请参考官方 Couchbase 文档。
配置参数
该过程支持以下配置参数
| 名称 (name) | type | 默认 | description(描述) |
|---|---|---|---|
collection |
字符串 |
"_default" |
要使用的集合。参见 Scope 和 collections。 |
scope |
字符串 |
"_default" |
要使用的作用域。参见 Scope 和 collections。 |
compressionEnabled |
boolean |
true |
如果启用,客户端将在将文档发送到 Couchbase 服务器之前对其进行压缩。详见此处。 |
compressionMinSize |
整数 |
32 |
以字节为单位的大小。小于此大小的文档永远不会被压缩。 |
compressionMinRatio |
双精度浮点数 |
0.83 |
0 到 1 之间的值。指定文档需要有多大的“可压缩性”才能将压缩形式发送到服务器。 |
mutationTokensEnabled |
boolean |
true |
Mutation token 允许更高的持久性要求以及高级 N1QL 查询功能。如果您不需要这些功能并希望避免相关的开销,请将其设置为 false。 |
retryStrategy |
枚举[FAILFAST, BESTEFFORT] |
BESTEFFORT |
客户端默认的重试策略。重试策略决定了失败的操作是否应该重试。详见此处。 |
transcoder |
枚举[DEFAULT, RAWJSON, RAWSTRING, RAWBINARY] |
DEFAULT |
负责在 Java 对象与 KV 二进制包之间进行转换的转码器。 |
connectTimeout |
Long |
null |
打开 Bucket 时使用的连接超时时间(以毫秒为单位)。如果为 null,将使用 |
kvTimeout |
Long |
null |
在特定键上执行操作时使用的 KV 默认超时时间(以毫秒为单位)。如果为 null,将使用 |
disconnectTimeout |
Long |
10000 |
断开集群连接时使用的断开连接超时时间(以毫秒为单位)。 |
queryTimeout |
Long |
75000 |
用于所有 N1QL 查询操作的查询超时时间(以毫秒为单位)。 |
analyticsTimeout |
Long |
75000 |
用于所有分析查询操作的分析超时时间(以毫秒为单位)。 |
viewTimeout |
Long |
75000 |
用于视图操作的视图超时时间(以毫秒为单位)。如果请求期间发生节点故障,内部集群超时设置为 60 秒。 |
searchTimeout |
Long |
75000 |
用于所有 FTS 操作的搜索超时时间。 |
configPollInterval |
Long |
2500 |
客户端获取集群拓扑信息以主动检测更改的时间间隔。 |
idleHttpConnectionTimeout |
Long |
4500 |
HTTP 连接在关闭并从池中移除之前可以保持空闲的时间长度。不建议超过 50 秒,因为某些服务有 1 分钟的服务器端空闲超时。 |
enableTcpKeepAlives |
boolean |
true |
如果启用,客户端会定期向服务器发送 TCP keepalive,以防止防火墙和其他网络设备丢弃空闲的 TCP 连接。 |
tcpKeepAliveTime |
long |
60000 |
触发 TCP keepalive 的空闲时间。(如果 enableTcpKeepAlives 为 false,则此设置无效。)TODO |
enableDnsSrv |
boolean |
true |
从 DNS SRV 记录获取引导节点列表。TODO |
networkResolution |
com.couchbase.client.core.env.NetworkResolution |
null |
网络解析。详情参见此处。 |
trustCertificate |
boolean |
null |
如果不为 null,则为包含单个 X.509 证书的文件路径,该证书在建立安全连接时作为证书颁发机构信任。如果存在,这将启用 TLS。详情参见此处。 |
waitUntilReady |
Long |
null |
此方法将等待直到集群状态变为“在线”(默认),或者达到超时时间。 |