Я работаю над системой, которая выполняет сопоставление больших наборов записей на основе строк, числовых диапазонов и диапазонов дат. Насколько я могу судить, совпадения String в основном являются точными совпадениями, в отличие от менее точных результатов полнотекстового поиска, для которых, как я понимаю, обычно предназначен lucene. Числовая точность важна, поскольку данные касаются цен.
Я заметил, что Lucene недавно добавила некоторую поддержку поиска по числовому диапазону, но это не то, для чего он изначально был разработан.
В настоящее время система использует процедурный SQL для сопоставления, и достигаются пределы масштабируемости системы. Я изучаю способы горизонтального масштабирования системы, и использование технологии поисковых систем кажется возможным, учитывая, что существуют технологии, которые могут масштабироваться до очень больших наборов данных при очень быстром поиске результатов. Я хотел бы выяснить, можно ли снять большую нагрузку с базы данных, выполнив сопоставление с метаданными, сгенерированными lucene, не обращаясь к базе данных для полных записей, пока правила сопоставления не определят, что должно быть получено. В конечном итоге я хотел бы стремиться к результатам, близким к реальному времени, хотя на данный момент мы далеки от этого.
Мой вопрос заключается в следующем: вероятно ли, что Lucene будет работать во много раз быстрее и масштабироваться до больших наборов данных с меньшими затратами, чем RDBMS для такого типа индексации и поиска?