我正在尝试将文档(.doc,.ppt,.pdf等)索引为附件(将内容字段存储为BASE64内容),然后执行搜索查询并突出显示结果文件上的内容字段。 当我索引它们时,为什么文件的大小会增加?
例如:索引文档的文件夹的总大小为30mb。但是头部插件显示相同数量的文件(从同一文件夹索引)的127mb
这是我的地图样式:
var response= client.CreateIndex(defaultIndex, c => c
.Mappings(m => m
.Map<Document>(mp => mp
.Properties(ps => ps
.String(s => s.Name(e => e.Title))
.Attachment(s => s.Name(p => p.File)
.FileField(ff => ff.Name(f => f.File)
.TermVector(TermVectorOption.WithPositionsOffsetsPayloads)
.Analyzer("english")
.Store(true)))))));
观察:(不知道我对此是否正确) 当我使用手动ID索引文档时,大小约为36mb,但是当我删除Id字段和索引时,它需要花费很多时间来索引,大小更多并且搜索功能无法正常工作。它取决于文件的索引方式吗?)
TIA
答案 0 :(得分:1)
指数的大小取决于许多不同的因素。文件夹的原始大小不能很好地估计您的索引的重量。
这很大程度上取决于你的字段的映射,即你是否使用大文本内容索引字段(似乎是你的情况),如果你有自定义分析器和ngrams tokenizer和/或令牌过滤器等等Lucene存储many different kind of files并且相同的令牌(带有额外的位置和偏移量)可能位于不同的文件中,所有这些都加起来就是索引的大小。
此外,如果您在测试期间反复对文件夹重新索引几次,那么索引大小将会增加,因为您将拥有大量已删除的文档。
最后,inflate your content已知BASE64大约三分之一。