Take the 2-minute tour ×
Database Administrators Stack Exchange is a question and answer site for database professionals who wish to improve their database skills and learn from others in the community. It's 100% free, no registration required.

In my current project we are storing big volume of data in relational database. One of the recent key requirements is to enrich application by adding some advanced search capabilities.

In the Project performance is one of important factors due to very large tables (10+ milions of records) with parent-children relations (for example: multi-level parent-child relationship, where I am looking for all parents with specific children). The search engine should also be able to check these references for hits.

I have found some potential engines on stack overflow, however it looks like that all of them are dedicated rather for text search than relational db and hosted on linux os:

Lucine
Solr
Sphinx

As I understand some of them use documents as a source of searching, but is it possible/ efficient to create programmaticaly documents based on my relational data? As I am not familiar with all of their features/capabilities can anyone please make some recommendations or propose some different solution?

To summarize my requirements:

  • framework/engine to search relational database including decendants.
  • support for Microsoft SQL Server
  • can be used in .NET applications
  • preferably hosted on Windows systems

Does any of mentioned above are able to solve my problem? do you know any better solution?

share|improve this question
    
Have you tried SQL Server's own full text search technology? –  Marian Nov 25 '11 at 10:36

2 Answers 2

Stack Overflow search is now 81% less crappy, thanks to Lucene. Whether this, or any of the other document oriented search servers, would be a good fit is difficult to tell from the detail you've posted.

Lucene/Solr and their ilk are built to search textual data. It sounds like you should be considering a graph database. High Scalability has an interesting article on Neo4j which discusses some of the concepts well.

Trinity (from Microsoft Research) may be worth investigating if you want something built on the Microsoft stack. I've not seen anything that provides point-and-click integration with SQL Server, that would be a task for your team.

share|improve this answer

We use Lucene.Net in our ASP.NET application. It indexes the database fields using the Query Parser methods and I believe it will do what you want.
My only proviso is that with the number of records you want to search I would think a dedicated server or two would be required to index the data.

And it is quite possible that at the end of the day when you have spent some time configuring Lucene and the hardware and writing the connectors you could have just made a data warehouse and got something similar.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.