我想使用Lucene MMapDirectory作为主文件存储。每个文件将作为StoredField中的字节数组存储在单独的文档中。应该可搜索的所有文件属性(如文件名,大小等)将存储在同一文档的可索引字段中。
我的问题是:
我真的很喜欢Luсene并认为它是最好的开源库,但我担心将它用作主要文件源并不是一个好的决定,因为:
在引擎盖下,lucene使用以下文件将所有存储的字段保存在一个段中:
您可以在Lucene50StoredFieldsFormat’s文档中详细了解它的工作原理。
所以你不会使用MMapDirectory而是使用实际的lucene索引。
我使用lucene作为某些项目的主要数据存储已经取得了很好的经验。
请确保还包含生成的/自然的唯一ID,因为文档ID不是常量或可靠的。
还要确保使用适合您的用例的Directory实现。我已经在低负载情况下切换到正常的RandomAccess实现,因为它使用更少的内存并且几乎一样快。