Для разбиения RDF на три объекта по теме я использую String.hashCode() объекта и помещаю тройку в соответствующий раздел. Цель состоит в том, чтобы иметь возможность обрабатывать секционированные файлы в памяти (обработка большого файла может быть невозможна).Как разделить RDF-тройки в Java на основе темы
Теперь, чтобы иметь ограниченное количество разделов, я делаю следующее. Если предположить, что мы хотим иметь 10 разделов, из большого RDF файла:
String subject;
partitionFileName = subject.hashCode/(Integer.MAX_VALUE/10)
Поэтому все тройки с теми же субъектами будут в одном разделе и в целом мы будем иметь 10 разделов.
Теперь проблема в том, что, когда тройки имеют разные распределения, это может привести к очень большим или очень небольшим разделам, которые нежелательны.
Есть ли у кого-нибудь предложения?
Заранее спасибо.
'subject.hashCode()% 10'? – Kenney
Ответ на Эзотерику велик, но вот хорошее чтение: https: // github.com/gholt/ring/blob/master/BASIC_HASH_RING.md – Michael