
folioorg/mod-searchmod-search是FOLIO图书馆服务平台的核心搜索模块,负责处理资源搜索请求,通过Kafka消费inventory和authorities事件数据,与Elasticsearch交互构建索引,提供高效的资源检索与浏览能力,支持多语言处理、并发事件消费及索引优化。
代码仓库:[***]
适用于基于FOLIO图书馆服务平台的场景,作为核心搜索组件为图书馆用户提供图书、馆藏、权限等资源的检索与浏览服务,满足图书馆系统对资源发现的需求。
-XX:MaxRAMPercentage=85.0(JVM最大内存占比85%)| 环境变量 | 描述 | 默认值 |
|---|---|---|
| KAFKA_HOST | Kafka服务地址 | kafka |
| KAFKA_PORT | Kafka服务端口 | 9092 |
| KAFKA_SECURITY_PROTOCOL | 安全协议 | PLAINTEXT |
| KAFKA_SSL_KEYSTORE_LOCATION | SSL密钥库路径 | - |
| KAFKA_SSL_KEYSTORE_PASSWORD | SSL密钥库密码 | - |
| KAFKA_SSL_TRUSTSTORE_LOCATION | SSL信任库路径 | - |
| KAFKA_SSL_TRUSTSTORE_PASSWORD | SSL信任库密码 | - |
| KAFKA_EVENTS_CONSUMER_PATTERN | inventory事件消费主题模式 | (folio.)(.*.)inventory.(instance|holdings-record|item|bound-with) |
| KAFKA_EVENTS_CONCURRENCY | inventory事件消费并发数 | 2 |
| KAFKA_CONSUMER_EVENTS_MAX_POLL_RECORDS | 事件消费者最大拉取记录数 | 200 |
| KAFKA_CONSUMER_EVENTS_MAX_POLL_INTERVAL_MS | 事件消费者最大拉取间隔(毫秒) | 600000 |
| KAFKA_AUTHORITIES_CONSUMER_PATTERN | authorities事件消费主题模式 | (folio.)(.*.)authorities.authority |
| KAFKA_AUTHORITIES_CONCURRENCY | authorities事件消费并发数 | 1 |
| KAFKA_REINDEX_RANGE_INDEX_CONCURRENCY | 索引重建范围索引并发数 | 1 |
| KAFKA_REINDEX_RANGE_INDEX_TOPIC_PARTITIONS | 索引重建范围索引主题分区数 | 16 |
| KAFKA_RETRY_INTERVAL_MS | 重试间隔(毫秒) | 2000 |
| KAFKA_RETRY_DELIVERY_ATTEMPTS | 重试投递次数 | 6 |
| 环境变量 | 描述 | 默认值 |
|---|---|---|
| ELASTICSEARCH_URL | Elasticsearch服务地址 | [***] |
| ELASTICSEARCH_USERNAME | Elasticsearch用户名 | elastic |
| ELASTICSEARCH_PASSWORD | Elasticsearch密码 | s3cret |
| ELASTICSEARCH_COMPRESSION_ENABLED | 是否启用数据压缩 | true |
| 环境变量 | 描述 | 默认值 |
|---|---|---|
| INDEXING_DATA_FORMAT | 索引数据格式 | smile |
| INSTANCE_CHILDREN_INDEX_ENABLED | 是否启用实例子项索引 | true |
| INSTANCE_CHILDREN_INDEX_DELAY_MS | 实例子项索引延迟(毫秒) | 60000 |
| INSTANCE_CHILDREN_INDEX_BATCH_SIZE | 实例子项索引批处理大小 | 500 |
| INITIAL_LANGUAGES | 初始支持语言 | eng |
| MAX_SUPPORTED_LANGUAGES | 最大支持语言数 | 5 |
| REINDEX_LOCATION_BATCH_SIZE | 重建索引位置批处理大小 | 1000 |
| MAX_SEARCH_BATCH_REQUEST_IDS_COUNT | 搜索批处理请求最大ID数量 | 20000 |
| 环境变量 | 描述 | 默认值 |
|---|---|---|
| SEARCH_BY_ALL_FIELDS_ENABLED | 是否启用按所有字段搜索 | false |
| BROWSE_CN_INTERMEDIATE_VALUES_ENABLED | 是否启用CN浏览中间值 | true |
| BROWSE_CN_INTERMEDIATE_REMOVE_DUPLICATES | 是否移除CN浏览中间值重复项 | true |
| SEARCH_QUERY_TIMEOUT | 搜索查询超时时间 | 25s |
| MAX_BROWSE_REQUEST_OFFSET | 最大浏览请求偏移量 | 500 |
| CN_BROWSE_OPTIMIZATION_ENABLED | 是否启用CN浏览优化 | true |
| 环境变量 | 描述 | 默认值 |
|---|---|---|
| SYSTEM_USER_USERNAME | 系统用户名 | mod-search |
| SYSTEM_USER_PASSWORD | 系统用户密码 | - |
| OKAPI_URL | Okapi服务地址 | - |
| STREAM_ID_RETRY_INTERVAL_MS | 流ID重试间隔(毫秒) | 1000 |
| STREAM_ID_RETRY_ATTEMPTS | 流ID重试次数 | 3 |
bashdocker run -d \ --name mod-search \ -p 8081:8081 \ -e ENV=folio \ -e KAFKA_HOST=kafka \ -e KAFKA_PORT=9092 \ -e ELASTICSEARCH_URL=[***] \ -e ELASTICSEARCH_USERNAME=elastic \ -e ELASTICSEARCH_PASSWORD=s3cret \ -e OKAPI_URL=[***] \ folioorg/mod-search:latest
yamlversion: '3.8' services: mod-search: image: folioorg/mod-search:latest container_name: mod-search ports: - "8081:8081" environment: - ENV=folio - KAFKA_HOST=kafka - KAFKA_PORT=9092 - KAFKA_SECURITY_PROTOCOL=PLAINTEXT - ELASTICSEARCH_URL=[***] - ELASTICSEARCH_USERNAME=elastic - ELASTICSEARCH_PASSWORD=s3cret - ELASTICSEARCH_COMPRESSION_ENABLED=true - INDEXING_DATA_FORMAT=smile - OKAPI_URL=[***] - SYSTEM_USER_USERNAME=mod-search - SYSTEM_USER_PASSWORD=secure_password depends_on: - kafka - elasticsearch - okapi


manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务