Recherche ASP.NET C # dans une table de database SQL Server

Je construis un portail, qui n'est pas un moteur de blogs, mais qui ressemble beaucoup à un. Dans SQL Server, j'ai une database contenant une table qui est la base pour les "messages". Ce tableau Posts contient les colonnes suivantes:

  • ID
  • Auteurs)
  • Mots keys
  • Titre
  • Markdown contenu du message

C'est la première fois que je construis un tel portail, et j'aimerais implémenter une sorte de search ASP.NET sur ces lignes, de preference en utilisant toutes les propriétés (colonnes), à l'exception de l'ID. Aussi, à long terme, j'étudie la possibilité d'implémenter une search de ceci et des commentaires à ces messages, qui seraient stockés dans une table différente.

Existe-t-il des implémentations open-source ou un exemple de code en ligne pour effectuer cette search ? Si non, comment puis-je commencer? Pourriez-vous me diriger vers quelques tutoriels avec un exemple de code sur la façon d'accomplir cela avec ASP.NET et C #? En outre, Google (ou une autre société) a-t-il créé quelque chose pour cela?

J'espère que ma question n'est pas trop large ou vague. Merci d'avance!

Utilisez-vous Sql Server 2008? Si c'est le cas, vous pouvez tirer parti des fonctionnalités de search en text intégral qui y sont embeddedes. Ensuite, il serait aussi simple que de passer l'input de l'user (aseptisée) dans une requête sql.

Par exemple, voici une requête qui searchrait les champs Auteur, Titre et PostContent pour le text saisi par l'user.

SELECT Author, Title FROM Posts WHERE CONTAINS((Author, Title, PostContent), @userInput); 

SQL Server 2008 prend également en charge différentes methods de search , telles que les jetons simples, les valeurs de mots pondérés, les synonymes, les searchs de proximité et de préfixes … c'est plutôt génial.

Avez-vous pensé à implémenter la search en utilisant la search en text intégral? Cela semble être un bon scénario. Ce lien peut fournir des informations utiles sur l'architecture et le développement de la search en text intégral. http://msdn.microsoft.com/en-us/library/ms142571.aspx

Si cela est publiquement exposé, vous pouvez toujours l'indexer. Google a un appareil que vous pouvez acheter pour le faire aussi bien.

Si vous ne voulez pas rouler le vôtre, vous pouvez regarder:

  1. Sharepoint (régulier [livré avec Win 2003+] ou server de portail)
  2. SOLR (projet Apache Lucene)

Si vous voulez faire votre propre parsing, je vous suggère de consulter SQL Server Analysis Services pour créer les index de search régulièrement.

Je suis d'accord avec Womp – L'index de text intégral est la voie à suivre. Vous pouvez également regarder NLucene si vous avez besoin d'indexer plus que la table de database.

Je pense que vous devriez essayer d'utiliser Lucene que vous pouvez utiliser pour indexer toutes vos données et build un très bon moteur de search. Je peux donner plus d'informations à ce sujet si vous le souhaitez.