I am working on improving the performance of existing ASP.Net application and lessen the database hits for each search criteria click on a page. In the process i am trying to implement the Lucene.Net .
but strange thing is i am trying to index using a "select *" statement on a table which is having millions of records, hangs at DB level itself.
Then how it is possible to get the entire "select *" results into a single document with lesser time without making the application hanged, from there i can apply search filters on the document nad show up in the grid.
Thanks in advance
When indexing millions of records in Lucene.NET you will need to break up the process. What you are trying to do is read all of the data up front, have it sit in memory, then have Lucene.NET take all of that read data and then build a massive index. It simply will fall apart with large data sets. You need to break the process up into a "buffered" architecture.
What I did in the past is..and what you could do for example:
I have found this architecture above scalable, as you can run as many threads (read and build) as you have cores. It is also cloud scalable, because you can use Azure Worker Roles and Queues to scale this to many many machines if you have a super huge index.