2

Is there any good search tools for asp.net I can buy to carry out search indexes easily on data I have in my database?

What I require is something that would carry out a general site search of articles but also faceted search as well. Faceted search is quite important feature.

Thanks.

R100
  • 471
  • 1
  • 10
  • 25

3 Answers3

4

You can implement facets with Lucene.NET, Solr, Sphinx, FAST, Endeca, probably also Xapian.

None of these will be trivial to integrate though, since they use very different data structures from relational databases. Usually you have to denormalize your data to feed it to a full-text search engine.

SolrNet includes a sample ASP.NET MVC application that shows how to implement facets with Solr.

Disclaimer: I'm the author of SolrNet.

Mauricio Scheffer
  • 98,863
  • 23
  • 192
  • 275
  • Thanks I shall take a look. I have used Lucene.NET to index my whole database to carry out a keyword search. But I didn't exactly know how to create facets using Lucene. Is SolrNet similar to Lucene where the whole database has to be indexed? My database is going to be very large. – R100 Dec 21 '10 at 20:53
  • @R100: about facets with lucene.net, see http://stackoverflow.com/questions/2939019/lucene-net-faceted-search – Mauricio Scheffer Dec 21 '10 at 21:02
  • @R100: actually you don't have to index the whole database with Lucene or Solr, just the part you want to search. – Mauricio Scheffer Dec 21 '10 at 21:03
  • @R100: also, Solr can be easily distributed in case the index gets too large: http://wiki.apache.org/solr/DistributedSearch – Mauricio Scheffer Dec 21 '10 at 21:04
  • Thanks for your help Mauricio. My search will needs to display different facets depending on a report type. Each report type could have different information. What would be the best way to implement this? Would I create a seperate index for each report type and then search that index for my facet? Any further help would be appreciated. – R100 Dec 22 '10 at 10:16
  • @R100: there is no straight answer to that, it depends. However it depends more on *what* you're searching than the facets you're showing. – Mauricio Scheffer Dec 22 '10 at 11:42
2

I agree with Mauricio Scheffer, using Solr.NET will help achieve what you want. I implemented a basic ASP.NET web form example around a year back. I found this link to be very useful to get me started: http://crazorsharp.blogspot.co.uk/2010/01/full-text-search-using-solr-lucene-and.html

Using the example (above), I managed to create this (DISCLAIMER: personal site): http://surinder.computing-studio.com/post/2011/01/14/At-Last!-Created-My-Own-eBay-Style-Search-Using-Solrnet.aspx

SurinderBhomra
  • 2,169
  • 2
  • 24
  • 49
1

Lucene .net great http://incubator.apache.org/lucene.net/

Its a .net port of the very popular Java search library Lucene.

Now, I prefer having a stand along search engine to remove the strain from my site. I use Solr which is Java, but you can use SolrSharp http://solrsharp.codeplex.com/ or SolrNet http://code.google.com/p/solrnet/ to intergrate with solr.

James Hull
  • 3,669
  • 2
  • 27
  • 36