2010-09-22 3 views
3

J'ai une table SQL très simple que je veux importer dans Solr mais à cause des fonctionnalités que je recherche, je ne peux pas déterminer le meilleur schéma.Problème simple de schéma Solr pour la saisie semi-automatique

L'utilisateur commencera à taper dans une boîte de saisie et après 3 caractères, il enverra la requête au serveur et extraira les résultats les plus pertinents en retournant les 15 premiers identifiants et noms correspondants.

Tableau ex)

id | name 
---------------- 
1 | boating magazines 
2 | boats weekly 
3 | boaters collection 
4 | shipping lane 
5 | ships today 

Recherche et ex retour prévu)

boa | [1, boating magazines], [2, boaters weekly], [3, boaters collection] 
boat | [1, boating magazines], [2, boaters weekly], [3, boaters collection], [4, shipping lane], [5, ships today] 
shi | [4, shipping lane], [5, ships today] 
ship | [1, boating magazines], [2, boaters weekly], [3, boaters collection], [4, shipping lane], [5, ships today] 
boating | [1, boating magazines], [2, boaters weekly], [3, boaters collection], [4, shipping lane], [5, ships today] 

(évidemment celles-ci seraient retournés au format XML)

Toute information sur la façon dont je réaliserions ce serait apprécié. Merci.

Répondre

2

Vous pouvez implémenter ceci en utilisant facet.prefix, TermsComponent ou NGrams. L'un de ces articles montre également comment lier à l'aide de jQuery ou use ajax-solr. Par ailleurs, un autosuggest component spécifique doit être inclus dans la prochaine version de Solr.

+0

Ahh super, après avoir fait quelques lectures ai-je raison de supposer que NGrams est la méthode la plus populaire pour cela? – user103219

+0

@ user103219: oui, les ngrams sont une bonne solution. –

+0

Merci beaucoup, a utilisé le NGrams un et a fonctionné. Faux sur un tas de cas d'utilisation, mais je suis sûr que cela a juste à faire avec le choix des filtres corrects. – user103219

0

Que voulez-vous savoir exactement?

Si votre question est comment obtenir vos données là-bas? le moyen le plus facile est l'envoi de fichiers xml ....

comment définissez-vous votre schéma.xml? vous n'avez pas à, il y a des champs génériques prédéfinis pour les chaînes, ils se terminent par _s je pense.

comment voulez-vous former la requête? ... et aussi facile que myfield_string:"boa*"

évidemment xml? Pourquoi? JSON est plus petit et tout aussi bon à cet effet!

Avez-vous consulté le tutoriel officiel? Voulez-vous faire un autosuggesting pour les mots ou les documents entiers?

d'abord est très facile. solr a même son gestionnaire très optimisé pour cela. consultez ce tutoriel: http://www.mattweber.org/2009/05/02/solr-autosuggest-with-termscomponent-and-jquery/

deuxième devient plus intéressant. Que faire si quelqu'un tape "collection de bateaux" ou quelque chose comme ça? Personnellement, je recommanderais d'utiliser le gestionnaire de démontage avec un caractère générique à la fin pour autosuggesting. alors les mots sont en logique OU conjonction et le mot non fini est apparié au début ...

+0

désolé j'étais sous l'impression que Solr ne renvoie que du XML. Oui je demandais comment définir le schéma pour cette situation. – user103219