编解码器工厂

可以在 solrconfig.xml 中指定 codecFactory,以确定在将索引写入磁盘时使用哪个 Lucene 编解码器

如果未指定,则隐式使用 Solr 的 SchemaCodecFactory,就好像它已定义且没有配置选项一样。

<codecFactory class="solr.SchemaCodecFactory" />

可用的编解码器工厂

solr.LuceneDefaultCodecFactory

solr.LuceneDefaultCodecFactory 使用 Lucene Codec.getDefault(),并且不支持任何配置选项。

示例

<codecFactory class="solr.LuceneDefaultCodecFactory" />

solr.SchemaCodecFactory(默认)

solr.SchemaCodecFactory 默认行为与 Lucene 的默认编解码器相同,但支持 2 个额外的关键特性

  • 基于模式的每个字段类型自定义

    • 任何字段类型上的 docValuesFormatpostingsFormat - 有关更多详细信息,请参阅字段类型属性部分。

    • 支持对 KnnVectorsFormat 进行 DenseVectorField 自定义 - 有关更多详细信息,请参阅密集向量搜索部分。

  • compressionMode 选项

    • BEST_SPEED(默认)针对搜索速度性能进行了优化

    • BEST_COMPRESSION 针对磁盘空间使用进行了优化

示例

<codecFactory class="solr.SchemaCodecFactory">
  <str name="compressionMode">BEST_COMPRESSION</str>
</codecFactory>

solr.SimpleTextCodecFactory

Lucene 的 SimpleTextCodecFactory 的这个工厂产生纯文本人类可读的索引格式。

仅供娱乐使用。此编解码器绝不应在生产中使用。SimpleTextCodec 相对较慢,并且占用大量磁盘空间。其使用应仅限于教育和调试目的。

示例

<codecFactory class="solr.SimpleTextCodecFactory"/>