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

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

{
  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
}

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

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

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

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

Или что-то еще целиком?

Спасибо.

1 ответ

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

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

Другие вопросы по тегам