Solr 和 MongoDB 的桥梁工具,SolrMongoImporter源码真的挺实用。你要是正好用 Mongo 存数据,用 Solr 做搜索,这工具可以让你少写一堆中间代码,直接把 MongoDB 里的数据导进 Solr 索引里,效率高还省事。

SolrMongoImporter的核心逻辑还是基于 Solr 的DataImportHandler (DIH)。你只需要在data-config.xml里配置一下 Mongo 连接,还有字段映射,剩下的全交给它。全量导也好,按时间戳增量导也行,都支持。

源码结构也蛮清晰的。像MongoEntityProcessor负责跑 Mongo 的查询,MongoConnection搞定连接和求,MongoTransformer就像个数据翻译官,把 Mongo 的数据转换成 Solr 那套格式。调试起来也比较容易,逻辑上没绕太多弯。

增量导入这块做得还不错。你可以通过时间戳字段来控制更新频率,也能二次开发,接入 MongoDB 的OpLog,搞个近实时的数据同步。适合日志类、商品库存这类频繁更新的数据。

不过注意点儿,Mongo 版本差异会导致兼容性问题,连接参数别写错。性能这块,Mongo 那边查询别写太重,Solr 这边字段预也得设置好,不然导数据导着导着 CPU 就上天了。

如果你在搭全文检索方案,Mongo 存数据,Solr 做搜索,不想自己写个中间层,那SolrMongoImporter这个源码,真的可以直接拿来用,还能二次改造,挺灵活。