Is there an ASP.NET full text search system for websites? - asp.net

We host websites in a shared hosting environment where Microsoft SQL Server full text searching is not allowed. We would love an ASP.NET API that allowed similar functionality to get around this restriction.
We can't easily install software on the shared servers, so the API would have to be written in ASP.NET.
SQL "like" queries are our alternative and they are fast enough (our websites never exceed more than 50Mb of text) but they don't rank results well, have a dictionary, do stemming etc

For this type of circumstance I'd rely on Google and create a proper sitemap. You can integrate google search right into your website too with Google SiteSearch.

If you need more control over full-text search, you can use features of the RDBMS to support this. You don't say which brand of RDBMS you're using. I assume it's likely Microsoft SQL Server if you're using ASP.NET.
See the docs for Full-Text Search at MSDN.
For other brands of RDBMS, see my answer: How best to develop the sql to support Search functionality in a web application?

Lucene is what we were looking for http://incubator.apache.org/lucene.net/

Related

Search with ASP.net and SQL Server 2008

I'm about to embark on the ASP.net project which involves building a pretty powerful search function. The application is very database heavy. Essentially, organisations will be adding a lot of metadata about themselves in the form of multi-selects, free text boxes etc. which are all stored in SQL 2008.
When it comes to search I'm loath to re-invent the wheel. Normally with a content driven site I'd use a component such as Zoom Search or ASP.net Search engine (http://www.aspnetsearchengine.com/UltimateSearch/Features.aspx)
But I don't think these type of content driven search controls are apppropriate for what I need given the data driven nature of the search.
I'm thinking full text search is the way to go but then I'm thinking I'll probably lose a lot of the bells and whistles I'd typically get with a packaged search module like spelling suggestions, document search, synonyms, ignore words etc.
Are there any good hybrid solutions (paid or free) for .net sites that provides these nice features within a search framework of sorts?
Thanks,
Ed
Lucene is pretty highly regarded across a number of languages. It's in use on some pretty large sites too, i know monster.com use it and their search is pretty extensive.
https://lucene.apache.org/
Edit Found some more resources:
Lucene.Net and SQL Server
SQL Server 2008 Full Text Search (FTS) versus Lucene.NET
http://ifdefined.com/blog/post/Full-Text-Search-in-ASPNET-using-LuceneNET.aspx
open source faceted search / guided navigation for ecommerce sites with .net apis

.net search algorithm?

I'm writing a ASP.net web app where users will be able to add wordy descriptions to a database table and was just wondering if there's some sort of (free) .net search plugin I could use to search through the database. I could write a simple SQL query to do it but I'd rather it be more robust and like a google search.
If your database is SQL Server, then you use SQL Server full text search. It's right there, and has google-like semantics.
you are probably looking for lucene.net which a port of lucene. Provide search capabilities for arbitrary document (so you can also index database text with it).
But I think you would rather index the html renders of your database entries (which lucene does beautifully).

Implementing a Search Box using ASP.NET MVC, SQL Server, Entity Framework

I have no experience building a search solution, but I'd like to have a search box within my solution and I don't know where to even begin. Are there cool SQL Server tricks that I can use to make my search solution performant (I'm using a hosted SQL 2008 server) I'd love pointers to a multi-step tutorial that starts me off with a simple query search solution...and then layers on more advanced code and features.
You don't actually say whether you need/want a 'spider' to index your site "as is" (like Google; which is useful if your searchable content on each page comes from many different tables/objects/entities) or whether you just want to query EF using full-text-search-like syntax to return a collection of Entities?
If you are interesting in the 'spider' approach - here's a CodeProject article for a small ASP.NET Search Engine "Searcharoo". It is a web-crawling search engine for small-ish sites (it doesn't use a database at all), so it may not be applicable for your situation.
The code is also at searcharoo.codeplex.com and there are 7 articles on how it works/was built at Searcharoo.net (disclaimer: I wrote them; I hope they are interesting/useful).
If you need to search your database directly, you should probably look into SQL Server 2008's Full Text Search feature (assuming LIKE isn't sophisticated enough for your needs). We used info from this article (free registration) to set-up SQL Full Text Search on a work project... no EF in our solution though.
Also, as you might know StackOverflow is built with ASP.NET MVC - they blogged about some problems with SQL 2008 FTS. There's also some info on SQL FTS versus Lucene.NET (which is another search engine you could research) that might be useful.
You might be interested in reading this.
Read this article:
Create a Site Search Engine in ASP.NET
If you don't have to program an engine yourself you could consider using Google Custom Search Engine. There are couple of articles about this:
Using Google Co-op's Custom Search
Engine
Implementing Search in ASP.NET with Google Custom Search
Also could be useful:
Helping Visitors Search Your Site By Creating an OpenSearch Provider

Replacement for Microsoft Index Server?

We're moving a legacy .ASP application to a new hosting provider that doesn't support Microsoft Index Server, on which one portion of the site depended. The application has a directory tree containing around 10,000 documents (text, MS Word and PDF) whose contents need to be indexed and to be searchable.
The application is staying classic .ASP for now but the search portion could be written in anything. We tried a tool called SiteSearchASP.Net but that number of documents was outside its reach.
A Google appliance is outside the client's budget, and these documents need to stay private so Google search isn't an option.
Anyone have experience with anything that might work?
Microsoft Search Server 2008 Express is free, much like the other great express products. Easy to configure, powerful and definitely within your budget ($0).
Try Lucene.NET Lucene.Net and SQL Server
I have been investigating the same question for my own line-of-business application that uses Index server, since it has been dropped from Windows Server 2012
Alas Windows search is not really the successor to Index Server, lacking interfaces for configuring multiple catalogs, amongst other things. The interface provided is oriented toward searching all the content on a workstation, rather than a platform for content searching on a line of business app.
MS Search Server is more complex to set up than Index server, and oriented toward URL crawling rather than file searching. The versions I looked at did not seem to provide the flexible API of Index Server.
The Lucene.Net toolkit is attractive, but you have to write a lot of infrastructure around it to make it work. It is not an out-of-the-box tool in the way Index Server was. It does offer the potential of a much better integrated solution than you could achieve with index server if you have the time to invest.
dtSearch is quite close to the concept of Index Server, but costs significant money. This is probably the easiest option if it is cost-effective.
Index Server was the unsung hero the original Cairo project. Perhaps some of the underlying engine lives on in the 'successor' products, but it is sad to lose it from Windows Server 2012. Microsoft have been very effective in recent years in monetizing their server business. I feel this may be one of the causalities of that strategy.
Perhaps "Windows Search"? It's the successor to Indexing Service.
You want the Windows Search Service, which is the current incarnation of Index Server. Search Service is available on Win 2008 and Win 2012, however it is not installed by default.
Note that Search Service is distinct from Search Server. Search Server is a different animal, with different api's (but a similar overall product goal).
Search Service details:
https://stackoverflow.com/a/23742911/147637

Best way to create a sitesearch in ASP.NET

Which is the best way to create a site search engine for a dynamic asp.net site with hundreds of dynamic pages. I have seen many products and articles
http://www.karamasoft.com/UltimateSearch/overview.aspx
http://www.sitesearchasp.net
http://www.easysearchasp.net/
http://msdn.microsoft.com/en-us/magazine/cc163355.aspx
http://www.codeproject.com/KB/asp/indexserver.aspx
Priyan,
Another high-quality open-source option would be the .NET port of Lucene
CodeProject - Introducing Lucene
dotlucene
lucene.net
You haven't mentioned Google's SiteSearch "product". Is one of your requirements that you'd like to host the search engine/catalog yourself?
Microsoft also has a product Search Server 2008 Express although I'm not sure if you can install it on any hosting provider.
And (disclaimer: I am the author) there is also a very basic open source project on CodeProject called Searcharoo (also at searcharoo.net). It is really meant as a 'demonstration/learning experience' - hence the six how to articles - but it might suffice for a small dynamic site.
I have used SQL Server Full Text Search for some projects - works well but it's really just searching database content, not a combination of static and dynamic Html/Pdf/Word/Jpg etc documents which a "real" web crawler will do.

Resources