2012-05-15 5 views
0

Nous avons un référentiel de tables. Environ 200 tables, chaque table peut être des milliers de lignes, toutes les tables sont à l'origine dans des feuilles Excel.Technologie DB pour une recherche efficace dans les données tabulaires?

Chaque table a un schéma différent. Toutes les données sont du texte ou des chiffres.

Nous aimerions créer une application qui permet une recherche de texte libre sur toutes les tables (nous définissons quelles colonnes seront recherchées dans chaque table) efficacement - la vitesse est importante.
Le principal dilemme est la technologie DB que nous devrions choisir.

Nous avons créé une maquette en important toutes les tables dans MS SQL Server et en créant un index de texte intégral sur celles-ci. La recherche est effectuée en utilisant le mot-clé CONTAINS. Cette solution fonctionne bien pour un petit nombre de tables, mais elle n'est pas évolutive.

Nous avons pensé à une solution NoSQL, mais nous n'avons pas encore d'expérience en la matière.

Nos limitations (que malheureusement je ne peux pas effectuer): Serveurs Windows seulement. Mais nous pouvons installer sur eux ce que nous voulons.

Merci.

Répondre

0

Découvrez ElasticSearch! C'est un serveur de recherche basé sur Apache Lucene et possède une API REST et JavaScript propre. Bien qu'il soit généralement utilisé comme index de recherche pour une base de données primaire, il peut également être utilisé de manière autonome. Vous pouvez donc écrire une routine de sauvegarde pour quelques-unes de vos tables/données et l'essayer.

http://www.elasticsearch.org/ http://en.wikipedia.org/wiki/ElasticSearch

Comparaison des ElasticSearch et Apache Solr (un autre serveur de recherche basé sur Lucene): https://docs.google.com/present/view?id=dc6zhtt5_1frfxwfff&pli=1

+0

Est-il recommandé pour une utilisation sur les fenêtres les serveurs? – KellyG

+0

Je n'ai jamais essayé, mais comme il est principalement basé sur Java, je pense que ça devrait marcher plutôt bien. http://captaincodeman.com/2011/05/20/elasticsearch-windows-service-2008-x64/ – spaudanjo

+0

Pourquoi 200 tables? Cela semble être trop. En utilisant PostgreSQL, je créerais une table avec un document par ligne avec la feuille de calcul stockée en tant que type de texte. Ce type peut être indexé et recherché http://www.postgresql.org/docs/9.3/static/textsearch-tables.html#TEXTSEARCH-TABLES-INDEX –

Questions connexes