2017-07-19 5 views
0

J'essaye d'implémenter un archivage de message dans riak. Le schéma ressemble à ceci:Riak Yokozuna Solr, comment récupérer le champ stocké mais pas index?

{ 
    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 et le paquet n'a pas besoin d'être indexé mais doit être interrogé à chaque requête.

Dois-je créer un schéma personnalisé et les stocker dans Solr comme champ non indexé? Dois-je effectuer une jointure au niveau de l'application du résultat de recherche lors de l'interrogation individuelle de chaque clé?

Ou MapReduce est-il en quelque sorte une option?

Ou quelque chose d'autre entièrement?

Merci.

Répondre

0

Je vais répondre à cette question au cas où quelqu'un aurait besoin d'une réponse à cette question. Je passe à autre projet et aucune solution n'est choisie au moment où je quitte le projet.

Yokozuna, plugin d'intégration Riak avec Solr, est terrible dans mon évaluation. Je choisis "créer un schéma personnalisé et les stocker dans Solr comme champ non indexé" pour mon évaluation. Indexer quelque chose comme un paragraphe de texte prend beaucoup de CPU et de temps dans yokozuna alors essayez de ne pas le faire pour quelque chose d'aussi rapidement mis à jour que les messages texte le font pour quelque chose comme des produits. Même sans indexer le paragraphe Yokozuna effectuer terriblement par rapport à quelque chose comme MySQL ou Cassandra. Il n'y a pas non plus de support de Riak parce que Basho a peut-être fermé depuis janvier 2017. Donc, je conclus que MySQL est vraiment suffisant pour la charge actuelle et Cassandra est probablement la meilleure option si MySQL ne suffit pas.