Это может зависеть от того, как fieldType определен в вашей схеме.
tint
раньше использовалось как предпочтительное имя для TrieIntField
реализаций, которые поддерживают сортировку, вычисление статистики и т. Д. Без необходимости включения docValues, так что тип вашего поля может реализовывать другой класс (класс PointField) который на самом деле полагается на docValues для достижения тех же целей.
Например, это может быть IntPointField
:
Целочисленное поле (32-разрядное целое число со знаком).Этот класс кодирует значения int с использованием структуры данных на основе «размерных точек», которая обеспечивает очень эффективный поиск определенных значений или диапазонов значений.Для однозначных полей для включения сортировки необходимо использовать docValues = "true".
Ну, на самом деле это должно быть IntPointField
, поскольку по состоянию на Solr7.0, поля Trie устарели в пользу полей Point:
TrieField принимает параметр типа, чтобы определить конкретный класс поля Trie * для использования.Используйте соответствующий тип точки поля вместо:
1025 * T̶r̶i̶e̶D̶a̶t̶e̶F̶i̶e̶l̶d̶> DatePointField
̶T̶r̶i̶e̶D̶o̶u̶b̶l̶e̶F̶i̶e̶l̶d̶> DoublePointField
T̶r̶i̶e̶F̶l̶o̶a̶t̶F̶i̶e̶l̶d̶> FloatPointField
T̶r̶i̶e̶I̶n̶t̶F̶i̶e̶l̶d̶> IntPointField
T̶r̶i̶e̶L̶o̶n̶g̶F̶i̶e̶l̶d̶> LongPointField 1031
Теперь ошибка говорит «Невозможно рассчитать статистику для PointField без значений docValues» , поэтому либо:
price
здесь не поле, так как его тип tint
будет относиться (обычно относится) к TrieIntField, а не к PointField.Это означает, что другой PointField, не использующий docValues, ответственен за ошибку. price
- это PointField, поэтому сначала его тип должен быть pint
или каким бы ни было имя fieldType, к которому он относится, но не tint
(если только сам fieldType не назван неправильно), а во-вторых, ему нужноdocValues включен для расчета статистики.
Итак, должно помочь определение правильного определения поля / fieldType в schema.xml, явная ссылка на тип IntPointField и включение docValues (добавление docValues="true"
к определению поля или типа поля).Например:
<fieldType name="pint" class="solr.IntPointField" docValues="true"/>
<field name="price" type="pint" indexed="true" stored="true" required="false" />