when we are using winform to index data through lucene.net then think say 10 same win apps is running in a office and they all index data. if the index segment file is created in every pc then it will be problem or we can create in any centralize pc but problem occur when that pc suddenly being unavailable from network. so i like to know can we store lucene.net index in sql server for centralize access. if possible please guide me. i search lot for storing lucene.net index in sql server but found none. i got a article on java and they i saw it is possible. here is the link
http://kalanir.blogspot.in/2008/06/creating-search-index-in-database.html
they said Lucence contains the JdbcDirectory interface for this purpose but i am working with lucene.net & c# so please anyone guide me how make it possible to store lucene index in sql server.
thanks
It is possible to create a custom Directory but, it is quite painful. I've seen several project try this and fail.
The show stopper for your approach is that the IndexWriter assumes that it has sole access to the Directory. So having multiple machines writing docs to the same Directory is flawed and will break many assumptions.
The best approach is to treat Lucene like a database. You wouldn't expect many machines to all write directly to files of a db. That's why there is a service that the clients talk to (SQL Server, MySql, Postgres etc etc).
Remember Lucene is just a library not a "product".
What you need is a service with an api for the machines to talk to.
ElasticSearch has been mentioned elsewhere and it is very good. Highly recommended you look into it. Redundancy, speed, latest features etc (yes it does require the JVM, more accurately the JRE. If you look carefully there is a download/installer that does not also install crapware).
It is also quite straight forward to write a service that self-hosts ASP.net WebAPI and wraps Lucene. Creating a client that talks to it is also quite easy. Just a wrapper around HttpClient. (I have done this several times. Getting a POC working should only take a day or two. But the devil is in the detail.)
I am looking for a search engine that can be used for sites. Sometimes we dont want to use google embedded search or the complication of lucene.
I run in to these requests:
Crawl based search
Rating and ranking of content based on content types
Searching documents like pdf and docs etc..
I dont mind if it is a commercial control that we have to purchase but I would like to be able to integrate it nicely in to some of these use cases
There used to be Lucene.net. Recently the status of this project is becoming questionable (not certain of the details). Here is the site: https://lucenenet.apache.org/
Looks like you can still download the code. Probably not much development going forward.
Bob
I have used dtSearch in the past which I know has a web crawler built into it. It doesn't come with a front end control though, it's strictly a search engine. You need to write your own results control. It does have a powerful query language though that lets you score on multiple dimensions depending on how you set up your indexes. It also has a decent .NET API to work with.
I don't know that this is any less complicated than Lucene though. So then I start to wonder what complications you are hoping to avoid.
You should look at Apache Solr (built using Lucene) - it offers a RESTful interface for integrating into .NET or whatever platform you prefer. It offers all the goodies could ask for without concern for compatibility Java .NET versions etc.
You can easily integrate Solr into your .NET app using SolrNet
i am looking for open source libraries which provide high performance faceted search / guided navigation for ecommerce sites
our ecommerce platform is entirely built on .net and so i would prefer libraries which do provide .net apis
performance is of utmost importance here... i checked out sphinx as well as solr but looking for better options as far as performance goes
as per blogs sphinx takes an average of 5 - 6 seconds to perform the first level of faceted search which is unacceptable in a real ecommerce environment
Apache Solr is exactly what you are looking for.
Is a full-fledged search server built using Lucene libs and easily integrable into your .NET application because it has a RESTful API. Comes out-of-the-box with several features such as faceting, caching, scaling, spell-checking, etc.
You can make life easier for your app-to-Solr interaction using the excellent SolrNet library.
Have a look at lucene.net it is a very powerful search engine that can be customised for most search related requirements:
http://incubator.apache.org/lucene.net/
I have less information about share point (only basic info). Microsoft released SharePoint for web developers. Microsoft also said SharePoint has compatibility with other .NET technologies like Workflow Foundation, WCF, etc and it's easy way to develop web sites and web apps.
Also as I know ASP.NET has compatibility with .NET technologies and C#. And it easy for every one whom at least work with C# or VB.NET.
So with these advantages of SharePoint:
Why we must use asp.net instead SharePoint?
Why Microsoft develops ASP.NET (new version 4)?
What's major reason to chose one of these?
Is really developing base-on share-point faster and easier than asp.net?
SharePoint is an Application that sits on top of ASP.net (3.5 SP1 in the current SharePoint 2010 - No ASP.net 4.0 will be possible). They do override a lot of ASP.net built-in functionality (they have their own .aspx Parser and Virtual Path Provider for example).
With ASP.net you have a very well documented, battle-hardened, mature and stable platform with a good API.
With SharePoint you gain a poorly documented, bug-ridden, very limited application that handles a lot of features that you would have to code yourself (e.g., User Profile Management, Document Organization and Versioning and Social Features like Commenting and Tagging), although for the most point SharePoint handles them really poorly and does not allow you to override them, which means that you spend a lot of time rewriting them anyway and trying to integrate them back.
Basically my advice as a SharePoint developer since 2006: Use it when you absolutely have to, avoid it whenever you can and stay with just ASP.net.
SharePoint is good as a simple document management and very light social system. You can quickly customize smaller parts of it and add a lot of value to your company. But in the moment you need something that even only slightly different from what Microsoft envisions, you hit a wall that you can't pass. It's great for what it does, nothing more, nothing less.
I am a Sharepoint Developer... And let me say that I wish it was just ASP.NET! That would be great... It brings with it it's own paradigms which are pretty complicated.
ASP.NET and Sharepoint are 2 'different' technologies. Sharepoint is mostly built with ASP.NET, and delivers ASP.NET pages to a user.
You can use either VB.NET or C# with Sharepoint.
In my opinion, Sharepoint development is only quicker if you are planning on using it's in-built lists, user management etc. Though these do take time to learn. The cool thing about sharepoint is that you can develop web parts, and re-use these web parts on multiple pages throughout the installation.
Microsoft continues to develop both ASP.NET and sharepoint because they are two different beasts, with ASP.NET pages being deliverable through Sharepoint.
As to which is best for you, you haee to make that call. Do you need Sharepoint? Or would a pre-built CMS such as DotNetNuke be better? Or even creating your own site with Windows credentials management so you can use SSO (Single Sign On).
It really depends on what you want to get out of your install. Sharepoint is expensive, and developers for Sharepoint are also expensive because of the specialist knowledge.
As a developer... (I hope my boss isn't watching!!) I much prefer to build things from scratch than to use SP, but that's my job...
Don't use sharepoint unless you need it, check this article:
Challenges when using SharePoint compared to ASP.NET
If you just want to create a website, go for ASP.net.
However, if your company has a SharePoint installation and you want to integrate with that, you should go for SharePoint.
SharePoint is build on ASP.net, but has many extensions that allow data to be shared throughout the company.
However, if you are just building a website and don't need all that, ASP.net is the way to go.
I'll try to answer point by point:
SharePoint isn't a replacement for ASP.NET. It's an extension of the ASP.NET platform that simplifies the implementation of several common use cases that are mostly relevant to enterprise websites: document management, knowledge retention, collaboration etc... SharePoint relates to ASP.NET in a similar way that Wordpress relates to PHP: it's a specialized extension rather than an alternative.
Same explanation as in (1).
Use SP if the things you need to develop are in the scope of what SP provides, which is mostly enterprise solutions of one sort or another. Here's a good summary of what SP can do.
Again, it would be faster and easier if you're trying to develop the things that SharePoint is meant for. Also, SP isn't so well-documented, so if you're not familiar with it, you might have a slow start.
SP is a very powerful platform, however, it does seem to bring complexities to the table that otherwise may not be there with simple ASP.net. Plus when you move "OOTB" with SP it becomes a bit challenging with RTM, etc. I live in blogs with "weird" things that happen. I am not a full blown SP developer but have been working with it for over 7 years and well, I find building solutions that will work within SP, but not necessarily built withIN SP generally are going to be easier to maintain and controllable. Just my opinion!
I would compare all for you and its up to you to decide.
ASP.NET >> Its a programming language by Microsoft which means you would need Windows Server + IIS + Database server like SQL Server + some Anti Virus on the server.
Say now you need some more PC for your servers and so your costs go up all the time you need a new server
Sharepoint Server are again from Microsoft and so everything above applies.
I have a website which has thousands of (ever increasing) resources in it. I implemented the usual Sql Full text Search and it was working fine until recently. I noticed some performance issues with it. I am using MySql Database with C#. NET as the back-end code.
I just need few valuable suggestions from you so that I can take those into account while building a new search strategy for my website.
What can I use to improve performance in the search functionality on my site?
You could try out;
http://incubator.apache.org/lucene.net/
Take a look at Lucene.NET. It is a high-performance, full-featured text search engine library which was initially written in Java but ported over to .NET. It is a technology suitable for nearly any application that requires full-text search, especially cross-platform.
Try using Lucene.NET. Many websites have text search based on it.