2012年3月26日星期一

Full Text Search Language Specification

I'm using FTS on on two columns (VARCHAR) of my database. The data is exported from a MySQL database to SQL Server. When populating the database the default language was set to English (or maybe neutral?), although 90% of the records are in Dutch. Now, when I change the FTS language specification to Dutch problems occur when querying the database. When I enter typical Dutch noise words in my query like "van" or "van der" the query does not return any results. When I set it back to Neutral the queries do return results, although a drawback is that I can't query for example plural forms of words. Could this be because, when populating the database, the correct language was not set? If so, is there a way to get the Full Text Index working with Dutch in a correct manner?

Thanks in advance for your replies! Would be great to get this working in Dutch!

Rino:

When I enter typical Dutch noise words in my query like "van" or "van der" the query does not return any results

I think ignoring the noise words is the feature of FTS and we can't manipulate it.

|||

Well, It think it is not really about ignoring the noise words. The are ignored by default, am I right?

To clarify things a bit: When I use the query "Van der Vaart" and the language for the FTS column is set to Dutch it returns no results. When I set the language to Neutral it does return results. Basically all it needs to do is find results for the part of the query that says "Vaart".

ps: We are using the excellent FTS Normalizer from E. Bachtal (http://ewbi.blogs.com/develops/2007/05/normalizing_sql.html) Could that possibly cause the issue described above?

|||

Got it solved...

For some reason if I add the language code in the SQL query it works: "...WHERE CONTAINS(table, @.query, LANGUAGE 1043)..."

没有评论:

发表评论