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 недостаточно.