为什么 IntPointField 与 TrieIntField 相比性能较差?
我已经在独立模式下设置了 solr 8.7.0,添加了核心 1 和核心 2,并分别索引了 100M 个文档并运行了如下所示的字段方面:
facet.field=employee_ids&facet.field=employee_serial_numbers
核心 1 中的多值字段定义如下:
<field name="employee_ids" type="pints" multiValued="true" indexed="true" required="false" stored="true" docValues="true"/>
<field name="employee_serial_numbers" type="pints" multiValued="true" indexed="true" required="false" stored="true" docValues="true"/>
<fieldType name="pint" class="solr.IntPointField" docValues="true"/>
- 默认 facet.method 是 fcs
- Qtime 保持不变(~6000 毫秒),无论我是否对上述 2 个字段进行字段分面、两次或 n 次
核心 2 中的多值字段定义如下:
<field name="employee_ids" type="tint" multiValued="true" indexed="true" required="false" stored="true"/>
<field name="employee_serial_numbers" type="tint" multiValued="true" indexed="true" required="false" stored="true"/>
<fieldType name="tint" class="solr.TrieIntField"/>
- 默认 facet.method 是 fc
- Qtime 在上述 2 个字段的第一次字段方面调用后减少。