Поиск по ключевым словам NoSQL в огромной таблице - PullRequest
3 голосов
/ 30 января 2012

Меня интересует, как решение NoSQL может поддерживать поиск по ключевым словам в очень большой таблице, распределенной по нескольким серверам?

Под поиском по ключевым словам я имею в виду БД, подобную той, что есть у Google, с огромным количеством документов.и с возможностью ответить на такой вопрос, как найти «отели в Нью-Йорке» действительно очень быстро.

Я вижу очень простое решение для поддержки операции ИЛИ в решении NoMysql (например, такие запросы, как: «A или B»).или C ") - просто для использования другой очень большой распределенной таблицы, которая будет содержать инвертированный индекс из любого слова в документе, в котором он найден. В таком случае, учитывая" A или B или C ", мы можем просто перейти непосредственно к"Записи "или" B "или" C "в индексной таблице и сбор всех идентификаторов документов.Затем, как только мы получим идентификаторы для извлечения документов самостоятельно.

Но как спроектировать БД, которая будет поддерживать эффективные операции AND (например, если мне нужно искать «A, B и C»)

1 Ответ

3 голосов
/ 30 января 2012

Я бы порекомендовал вам взглянуть на asticsearch и solr .

...