2

何十億もの単語を含む非常に大きなデータベースがあります。これらの単語の中を検索する必要があります。私が知っている最速の方法は、SQL SERVER 2008 に付属の iFTS を使用することです。

データはトルコ語です。つまり、データの言語はトルコ語です。また、SQL SERVER 2008 は、トルコ語でも問題なく全文検索を処理します。

しかし、ここで説明されているようにフルテキストの単語をリストしようとすると問題が発生します: http://technet.microsoft.com/en-us/library/cc280900.aspx

sys.dm_fts_index_keywordsから返される単語列は、keywordおよびdisplay_termです。しかし、これらの列は正しい文字セットではありません。たとえば、トルコ語の文字セットには ı と i の両方があります。同様に、o と ö、g と ğ です。ただし、戻り値はASCIIエンコードされています。同様にkörkorとして返され、içinは icinとして返されます

しかし、CONTAINS 検索を行うと、SQL Server は検索語に正しく一致し、真の結果を返します。つまり、 körkorで検索すると、異なる結果が返されます。これが実際の動作です。

したがって、ASCII表現ではなく、SQLに保存されている単語を取得する必要があります。

私の問題を説明できれば幸いです。

4

1 に答える 1

2

これは SQL 2012 で修正されたようです... SQL 2012 では、クエリ sys.dm_fts_index_keywords; によって返される列、キーワード、および表示用語。正しいトルコ語を返すようになりました...

于 2012-11-20T14:54:28.457 に答える