编解码器工厂

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

如果没有指定,则 Solr 的 SchemaCodecFactory 会被隐式使用,就好像它在没有配置选项的情况下被定义一样。

<codecFactory class="solr.SchemaCodecFactory" />

可用的编解码器工厂

solr.LuceneDefaultCodecFactory

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

示例

<codecFactory class="solr.LuceneDefaultCodecFactory" />

solr.SchemaCodecFactory(默认)

solr.SchemaCodecFactory 默认为与 Lucene 的默认编解码器相同,但支持 2 个其他关键功能

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

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

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

  • 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"/>