2015-11-17 2 views
1

В этом случае у меня много журналов. Каждый журнал содержит время, IP, URL, содержание и т.д.Как создать специальный инвертированный индекс MapReduce?

Вопрос 1: То, что я хочу сделать, это определить, что даст вам определенное слово как «Google», скажите мне, какой журнал Материалы содержит это слово.

Вопрос 2: Я не могу убедиться, какое слово я предпочитаю, поэтому дай мне весь инвертированный индексный ответ.

Итак, мой вопрос: На вопрос 1, как проектировать преобразователь & редуктор?

  • Я могу использовать mapper для разбиения содержимого журнала, а на выходе mapper много пар k-v <'word', log_id>. Редуктор должен пройти все эти ответы, и если он встретит пару, например <'google', log_id>, выведите ее.
  • И я также могу использовать mapper для работы через весь контент, если он соответствует слову «google», он дает вывод <'google', log_id>, если он встречает другие слова, просто пропустите. Если преобразователь не соответствует определенному слову, он ничего не выводит. В этом случае редуктор просто выводит, ему не нужно работать.

Так вы могли бы рассказать мне, какой из них лучше?

ответ

1

Эти два делают разные вещи. Ваша вторая реализация работает для вопроса 1, когда у вас есть точное слово, которое вы ищете. Ваша первая реализация работает для вопроса 2, когда вы не знаете слова, которое ищете. Это разные проблемы с различными решениями.

Если вы просто, который хочет решить вопрос 1, тогда ваш второй алгоритм будет работать нормально и работать быстрее.

Смежные вопросы