Huge limitation in MOSS Search and Search Server Express using the FREETEXT clause

A while ago I was working in a project where the customer had problem searching the content of columns with type multiple line of text in SharePoint. We were using the FullTextSqlQuery class with the FREETEXT keyword. After some investigation I found out that there is a huge limitation in the search engine. As it turns out when the crawler indexes content it stores the data in two columns in the MSSDocProps table. The first is strVal which is a nvarchar(64) and the second is binVal which is a image-type. When you run a fulltext query with the FREETEXT clause it runs against the strVal column which only contains the first 64 charcters of the crawled content.

This limitation got even more frusterating when we needed to search for document in a specific sub web. Since there is no way to search on the SPWeb’s guid we thought we could filter the search on the documents path put since this limitation also affects the CONTAINS clause we only got the first 64 characters of the url which was of no use.


The only workaround I’ve found is not to use FREETEXT and do some post-filtering of the dataset returned from ExecuteQuery. This is possible since the value of the fields you have in the SELECT clause fetches the data from the binVal column which contains the full text.

I understand that because of performance and disk space there is a limit of 64 characters but it would have been nice if Microsoft had made it possible to search the full content of a field.

Leave a Reply">Entries (RSS) and Comments (RSS).