Использование разреженных векторов в упругом поиске имеет двумерные пределы. С одной стороны, векторы не должны иметь более 1024 элементов.
Это можно решить, как видно в этом вопросе .
Второе ограничение не числоэлементов в одном разреженном векторе, но размерность элементов. Например, если у нас есть 20 измерений , мы могли бы иметь эти два вектора:
v1 = {"1": 0.01, "7": 0.2, "0": 0.4}
v2 = {"19": 0.02, "11": 0.7}
только с 3 и 2 элементами каждый. Обратите внимание, что ключи варьируются от 0 до 19 в виде строк.
Эти словарные ключи (разреженные векторы даются в виде словарей для json) являются целыми числами, закодированными в виде строк, и не могут выходить за пределы смешного числа 65535.
Я предполагаю, что это может быть связано с предельным значением по умолчанию для файловых дескрипторов , которое также равно 65535, что я считаю слишком подозрительным, чтобы не иметь к нему отношения.
Являются ли эти проблемына самом деле связаны? И возможно ли обойти ограничение для разреженных векторов? В моем случае размер разреженных векторов дается из словаря, поэтому его уменьшение повредит результатам (хотя я не очень беспокоюсь о производительности запросов).