2016-10-03 5 views
0

J'ai une base de données relationnelle avec quelques tables. Certains d'entre eux ont des colonnes sur lesquelles je veux activer l'autocomplétion/l'autocorrection (par exemple titres, tags, catégories).Apache Solr pour les suggestions de colonne de base de données unique

J'ai vu que Apache Solr, qui repose sur l'indexation Lucene peut offrir une telle fonctionnalité. Données également can be fed dans Solr à partir de la base de données relationnelle.

Ma question est: est-ce la meilleure façon que je peux obtenir des services de saisie semi-automatique et de correction automatique pour mes entités? Ou est-ce que je tue un moustique avec un bazooka ici?

Solr nécessite beaucoup de ressources, de mémoire et d'autres choses et je me demande si quelque chose de plus simple peut faire l'affaire pour moi.

Répondre

0

Combien de valeurs uniques avez-vous dans le titre, les balises, les catégories? Quelques milliers? Ensuite, je pense que vous pouvez vous en sortir en utilisant une structure Trie Data. Quelques millions d'enregistrements dans ces colonnes? Alors Solr/Elasticsearch pourrait être une bonne option.

J'ai utilisé Trie pour l'autosuggestion. Construire un Trie est cher. Mais vous pouvez stocker le trie dans Memcached ou même SQL et le mettre à jour périodiquement lorsque de nouvelles données sont ajoutées à vos colonnes.

+0

Essayez est bon pour l'autocomplétion, mais je voudrais également mettre en œuvre une bonne structure sur l'autocorrection pour la deuxième tâche. –

+0

Vous pouvez également utiliser trie pour vérifier l'orthographe. http://stackoverflow.com/a/21367876/689625, http://www.techniful.in/2012/04/spell-checker-using-trie_3.html. Vous pouvez également utiliser un vérificateur d'orthographe dédié - http://norvig.com/spell-correct.html. Vous pouvez utiliser les mots de votre colonne sql comme entrée pour ce vérificateur d'orthographe. – jay