Riak Yokozuna Solr, как получить сохраненное, но не индексное поле?

Я пытаюсь реализовать архивирование сообщений в riak. Схема выглядит примерно так

{
  id = <<>>                            :: binary() | '_',
  username_s = <<"">>                  :: binary() | '_',
  timestamp_i = 0                      :: integer(),
  peer_s = <<"">>                      :: binary(),
  bare_peer_s = <<"">>                 :: binary(),
  packet = #xmlel{}                    :: xmlel() | '_',
  nick_s = <<"">>                      :: binary(),
  type_s = chat                        :: chat | groupchat
}

id и пакет не нужно индексировать, но их нужно запрашивать при каждом запросе.

Должен ли я создать пользовательскую схему и сохранить их в Solr как неиндексированное поле?

Должен ли я выполнять объединение результатов поиска на уровне приложения при индивидуальном запросе каждого ключа?

Или MapReduce как-то вариант?

Или что-то совсем другое?

Спасибо.


person Rmxhaha    schedule 19.07.2017    source источник


Ответы (1)


Я собираюсь ответить на это, если кому-то нужен ответ на этот вопрос. Я перешел к другому проекту, и на момент выхода из проекта решение не было выбрано.

Yokozuna, плагин интеграции Riak с Solr, на мой взгляд, ужасен. Я выбираю «создать пользовательскую схему и сохранить ее в Solr как неиндексированное поле» для своей оценки. Индексирование чего-то вроде абзаца текста требует много ресурсов процессора и времени в yokozuna, поэтому старайтесь не делать этого для чего-то, что так быстро обновляется, как текстовые сообщения, возможно, делают это для чего-то вроде продуктов. Даже без индексации абзаца Yokozuna работает ужасно по сравнению с чем-то вроде MySQL или Cassandra. Также нет поддержки со стороны Riak, потому что, возможно, Basho закрыт с января 2017 года. Итак, я делаю вывод, что MySQL вполне достаточно для текущей нагрузки, а Cassandra, вероятно, является следующим лучшим вариантом, если MySQL недостаточно.

person Rmxhaha    schedule 09.09.2017