Вам нужно сделать свой RegEx Lazy :
customfield_11301(.*?)customfield_10730
Ваше Regex было Жадные . Это означает, что он найдет customfield_11301
, а затем перенесет, пока не найдет последний customfield_10730
.
Вот более простой пример Greedy vs Lazy Regex:
# Regex (Greedy): [(.*)]
# Input: [foo]and[bar]
# Output: foo]and[bar
# Regex (Lazy): [(.*?)]
# Input: [foo]and[bar]
# Output: "foo" and "bar" separately
Ваше Regex было очень похоже на первое, оно слишком много захватывало, в то время как этот новый отображает наименьшее количество данных и поэтому будет работать так, как вы планировали
Существуют plenny scalabity отчеты и сравнительные тесты в сети о различных тройных хранилищах.
Вот прекрасный отчет о масштабируемости.
Сам W3C поддерживает Wiki с большой информацией о Большом Triplestores и Сравнительных тестах.
Перейдите по этим 3 ссылкам и не торопитесь для чтения его. Это очень информативно.:)
Одна интуиция - то, что, если у Вас есть очень большое количество объектов, хранилища кортежа могут избавить себя от необходимости иметь Ваши индексы, обычно выбиваемые из памяти, поскольку Вы переключаетесь между таблицами и вместо этого всегда имеете первые уровни пары индекса кортежа в RAM.
Я использовал сезам экстенсивно в моих проектах на работе. Я нашел, что это быстро и достаточно надежно для большинства ситуаций, в которых я нахожу меня. Это определенно превзошло решения для устройства хранения данных Йены по характеристикам на множестве передних сторон. Сезам 1.x имеет более быструю производительность запросов, чем 2.x версия, но 2.x версия имеет некоторые хорошие функции, такие как поддержка sparql и контексты.
Если Вы надеетесь использовать традиционную реляционную базу данных, Вы могли бы посмотреть на что-то как D2RQ или что-то как Owlgres (если Вы хотите заключить).