вопрос про inverted index
Раз ты смог посчитать размер, может быть можешь сказать, сколько документов, средняя длина документа, количество разных слов?
Наверняка человечество как-то продвинулось в этом вопросе.я бы попробовал sphinx
выражение поиска чаще всего содержит десятки keywords, условно говоря до 100, но иногда бывает немного больше.
Оставить комментарий
ark21
есть задача, чем-то похожая на searchДетали излагать не могу, но попробую перефразировать в терминологии поиска
из большого числа документов быстро (секунды) выбрать 10 любых, которые удовлетворяют условию, например такому
(keyword1 or keyword2 or keyword3) and (keyword4 or keyword5 or keyword6)
Насколько я понимаю, такие задачи решаются построением inverted index
keyword => document ids
Если каждый список document ids отсортирован, то можно параллельно читать 6 списков, искать на ходу пересечение, и как только нашли 10 - остановиться. При этом нужно использовать компрессию, чтобы считывать меньше данных в среднем
Если делать так, то с компрессией полный размер индекса будет около 600GB, и вроде машин для этого понадобится больше одной.
Собственно вопрос в том, какие технологии использовать, чтобы облегчить себе жизнь и не писать это с нуля. Наверняка человечество как-то продвинулось в этом вопросе.
upd. речь именно про использование уже построенного индекса