views:

94

answers:

1

I am working on a database that is very localized, for example sake:

Tables:
Product - Has non localized columns (item number, created, etc)
Product_Local - Has localized columns (description) and a language identifier column

I am using SQL 2008 and full text searching requires for its word breakers that I set the language per column. I can't, and I do not want to add columns for every language anyway.

I was first hoping I could look at another column in the row to find an LCID or something and base its breaking off of that but I have searched with no luck on that.

However, XML data types do let you specify with a tag, so I thought I would make one extra column called "SearchContent" and put in all the local data (Name, Description) - however if I want to weight the results, say weight matching the name of the product higher than the rest, can I use XML Querying to specify the part of the XML document I want to search?

I found this doc: http://msdn.microsoft.com/en-us/library/bb522491.aspx which gets me closer, but I want to do some more weighting so I would like to use ContainsTable, and I do not really want to have exact matching on the element.

So I was hoping on the I could specify the column and a XPath to narrow down on my full text search. I can also add an additional XML column to pull out the name and do my unions that way, but if I can do it with one column, great.

Thanks

+1  A: 

You can't use XML queries to limit which parts of a given XML document are presented to full text search. You can only use XQuery in the WHERE clause to limit the rows.

Also, in case you're don't already know, full text queries won't let you search XML tag or property names for XML-type columns -- just the data.

RickNZ