Je développe un site Web avec api qui peut être consulté à partir de clients mobiles, l'application est quelque chose de similaire à http://zomato.com/recherche base de données optimisé algorithme
permet de dire que nous avons la table voiture (carid, modèle, fabricant, transmission, fuleType, otherOptions)
l'utilisateur peut interroger l'un des champs, la requête peut également inclure des champs dans d'autres tables, par exemple si je crée une table séparée pour les décideurs et les modèles.
bien sûr, je peux interroger en utilisant la clause like sur tous les champs, est-ce la bonne façon? quand il pourrait y avoir des milliers d'enregistrements?
J'ai besoin d'une réponse rapide en temps réel à l'interrogation lors de l'utilisation de l'application mobile ou du site Web.
Je connais le mieux .Net mais je serais heureux que vous me donniez d'autres recommandations et que vous me guidiez sur le point de départ (bibliothèques, projets open source existants).
Note: l'utilisateur n'aura un champ de recherche filtres et en option comme modèle, catégorie, etc ...
Oui, je suis conscient de cette technique pour interroger la base de données mais dans mon cas, vous ne saurez pas quel champ il interroge, donc je cherchais quelque chose de plus avancé. et je voulais un moyen de donner une réponse en temps réel au client API par exemple quand il tape les trois premiers caractères commencent à filtrer comme les moteurs de recherche, et je ne peux pas utiliser les documents dont il a besoin pour être une base de données. –
Pour un type de recherche automatique complet, vous avez besoin d'une liste de mots-clés. Il serait préférable de créer une table de tous les mots-clés soumis et vous pouvez utiliser une règle générale qui dit si un mot-clé a été soumis X nombre de fois l'ajouter à la table mot-clé qui est utilisé pour votre auto complète. Vous devez également implémenter une liste blanche et noire pour les mots-clés. En ce qui concerne la requête ce que vous avez devrait être très bien, plusieurs instructions où sur chaque champ. Vous voulez probablement vous concentrer sur l'optimisation de la base de données qui est en dehors de la requête, comme les index, la mise en cache, etc ... –
J'aime l'idée de la boîte noire/blanche, alors vous voulez faire deux requêtes à la base de données (une initiale pour charger automatiquement les données complètes) l'autre est d'obtenir de vrais résultats. Je vois ce que j'essaie de faire n'est pas très compliqué comme je le pensais, mais puisque vous avez mentionné NoSql, je n'ai pas encore utilisé cela, j'ai lu des articles à ce sujet mais je n'ai pas pu confirmer navires entre les entités de base de données), je ne veux pas changer l'objet de la question. mais je ne sais pas si je vais aller avec la base de données relationnelle ou dois-je passer plus de temps à apprendre de nouvelles techniques (le NoSql) –