Lately, we've been using more and more the Lucene/Examine/UmbracoExamine functionalities that ship with Umbraco, and so far I've had quite some issues I've seen come up. Here's a minor list

  • [tip] Umbraco indexes practically everything, including the registered members. That means that you can ditch the Member API (and its underlying ASP Membership functionality) and use lucene if you need to have member data exposed and searchable in your website frontend. The performance gains are huge and show up fast; For a website with roughly 500 members, using the ASP Membership with Profiles to search through the Members takes about 5-6 seconds. With Lucene, it's under 0.5 second. Just make sure you do not index any sensitive data, or make extra sure that you inform your members precisely what you are exposing to your front end for everyone to see.
  • [tip] In the same spirit, umbraco indexes all media as well, and in its general content index at that. So you can ditch the media API that accesses the database (and is slower). There is a great post on how to safely do that here. It is rather outdated, however it is relatively trivial to get it up-to-date with the Media API as fallback.
  • [gotcha]Lucene search is NOT real time. It takes time to re-index when something changes. Keep that in mind when you build a website with 50,000+ nodes.
  • [gotcha] Do not use the internal searchers and indexers. Always create your own. Internal indexers retain information on nodes that you'd rather not expose in your front end (e.g. trashed and unpublished). So in your own indexers, in your /Config/ExamineSettings.config you should always use supportUnpublished="false".

Happy coding!