Monday, June 13, 2011

Old Search is deprecated in Sitecore 6.5


I’ve blogged about this before, now it’s official. If you have not seen this before, you can find the following in the Release Notes for 6.5:
The Sitecore.Data.Indexing namespace has been deprecated and will be removed in a future version of the CMS in favor of the more powerful and flexible Sitecore.Search classes and corresponding index definitions.


Now it’s a good time to revisit the functionality build on top of “old” search and re-implement it with Sitecore.Search namespace.
Related documentation:
http://sdn.sitecore.net/upload/sitecore6/sitecore_search_and_indexing-a4.pdf

4 comments:

Brian Pedersen said...

It is sad to hear that the old Index is leaving Sitecore. I must say that after playing with the new search methods for 2 hours, I still haven't managed to get a working index. It took me 20 minutes to have an index running using he old methods.

It seemes that Sitecore has a different idea of what the Lucene index is good for. We have always been using Lucene for _indexing_ content for fast retrieval, not for _searching_ content.

The old index was fast, consistent and easy to set up. We used it for returning the 3 latest news from the website. We created small applications allowing users to get documents based on metdata. But we would never use it for free text searches. Any Google product is better at free text searching.

And why is the new search crawling the website? The old index was great because any change was instantly written to the index as well.

Maybe we just need a couple of articles on how to do the most simple stuff: Index all news articles and return the top 3; Index any page based on their metadata.

Untill then I will continue to be sceptical about the new implementation.

Alex Shyba said...

Hi Brian,

I have to disagree on a few items here.

Regarding the performance, we ran the performance profiler and the new search is way faster and more lightweight than the old one. This has been confirmed with a number of customer installations in production. I am very curious why you are getting different experience.

Regarding the setup, it is rather straightforward as to me, as the new index is defined in a single place now.

>>> It seemes that Sitecore has a different idea of what the Lucene index is good for. We have always been using Lucene for _indexing_ content for fast retrieval, not for _searching_ content.
The only use case when I personally recommend using Sitecore.Search is for fast data access, like you. I've never heard anybody recommending Lucene for front-end search, especially on enterprise level.
OOTB it is used for searching the content within the CMS but you are not required to use it. You can plug in Coveo into CMS. I agree that there are better tools for that.

>>> And why is the new search crawling the website?
Not sure what do you mean by that. DatabaseCrawler is not indexing the website. Could you please elaborate here?

>>> The old index was great because any change was instantly written to the index as well.
Both new and old searches are updated using the same techniques. HistoryEngine basically. Locally new index is updated automatically. Remotely, on an interval basis.

The scenarios that you listed below is exactly what the AdvancedDatabaseCrawler/Search project is doing and making it a bit simpler.
http://trac.sitecore.net/AdvancedDatabaseCrawler/browser/Branches/v2

Hope this can influence your skepticism a bit ;-)

-alex

CBC said...

Hi Alex,

I’m working with Sitecore 6.6.0 (rev. 130111) . I am not able to follow the example because its missing the “search categories.css” class in the downloaded code in :

http://marketplace.sitecore.net/en/Modules/Bidirectional_Lucene_Search.aspx.

It’s also asking for an old Lucene.Net, Version=2.3.1.3 reference, I have ‘Lucene.Net, Version=2.9.4.1 with sitecore 6.6.0, I tryied anyway changing the reference for the old one but it doesn’t work either.
Tkss in advance.
CBC

Alex Shyba said...

Hi CBC,

I am not the one maintaining the project you are referring to. You may want to post the comment on Marketplace.

6.6 is using Lucene 2.9, and the codebase is build for 2.3 I believe. It should build with 2.9, however, I don't foresee major issues.