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:


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?


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.


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.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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