Dominik Juszczyk Technical blog

29Jun/100

Playing with Microsoft Search Server 2010 Express

Recently I was asked to find out if we can use new version of search server in one of our new projects together with the module we did develop to integrate it (Search Server 2008) with EPiServer.
I have started to search, investigating and I have few findings which I want to share here (mostly to have everything in one place :) )

I have started with quick comparison of the 2008 and 2010 version - there is nice page that gives the overview what was introduced in new version. On that page you can find summary of new features introduced in version 2010.

Next thing I did was installing the Microsoft Search Server 2010 Express. The idea was to install it, try to crawl the page that was already using search server (but in version 2008) and try to just change the URL to the search web service.  Of course there were some tricks to do it. For example I had error message when I wanted to crawl any page. I got the error: "Access is denied. Verify that either the Default Content Access Account has access to this repository, or add a crawl rule to crawl this repository. If the repository being crawled is a SharePoint repository, verify that the account you are using has "Full Read" permissions on the SharePoint Web Application being crawled." Luckily I found that post. Following the instructions from that post helped to solve it.

Good news is that it occurred that Query Search Schema of version 2010  is compatible  with that one from version 2008. So the module we did develop to use it with Search Server 2008 is working with Search Server 2010 without changing single line in code :)

I am wondering if elements of search query SortByProperties and  SortByProperty are finally working (they weren't with version 2008) :D

When I will do anything more with new versions and I will have any interesting findings I will share it with you here :)

26Oct/091

Microsoft Search Server Express 2008 – two issues

Recently we have started using Miscrosoft Search Server Express 2008 (MOSS) as a search engine for some of EPiServer based projects (replacing default EPiServer  search engine). But the context of usage is not that important now.

To be clear - I think MOSS is a very nice product that is great for medium projects. But we encountered two issues with it - one already solved and one still not fixed.

Starting with solved one ;) It occurred that MOSS by default is not crawling pdf files. I'm not sure why - because pdf files are one of the most popular ones...  I found solution to that on Nicholas's blog - Microsoft Search Server PDF iFilter Installation

You can read about details on his blog. Just to highlgiht those are steps to add pdf crawling to MOSS:

  • you will need to install Acrobat Reader on the same machine where MOSS is installed
  • modify some register keys
  • add pdf extension to the list of files extensions to be crawled

That was quite easy ;)

Update: Some times there might be still the problem with PDF crawling. It might be an issue with wrong CLSID of Adobe IFilter.  Here can be found a solution to that:  http://blogs.msdn.com/ifilter/archive/2007/03/29/indexing-pdf-documents-with-adobe-reader-v-8-and-moss-2007.aspx

Second issue is still waiting for solving.

What is the problem? Results sorting, not by rank but by chosen managed properties.
We are using QueryEx. According to MSDN it is possible to change default sorting of results returned by search server. You can see that the QueryPacket has element:

It should be possible to send QueryPacket with SortByProperties element set to something like this:

1
2
3
4
<SortByProperties>
  <SortProperty name="Page" direction="ascending" order="1"></SortProperty>
  <SortProperty name="Heading" direction="ascending" order="2"></SortProperty>
</SortByProperties>

where both Path and Heading are managed properties that are available in results.
Unfortunately, there is no change in results sorting - they are still sorted by rank. We have even tried to add names of the properties in lowercase - as someone suggested in comments.

I'm still looking for a solution to the second problem - so, if you have any suggestion please, do not hesitate to let me know ;)