2

SQL Server 2008 R2で奇妙なfulltextindexの動作に遭遇しました(私のワードブレーカー言語はドイツ語です)。

私はこのテキストに索引を付けています:

[...] Java Editorerstellung in Eclipse eines Modellierungseditors(UML) mit den Eclipse Technologien [...]

私はトリプルチェックしました:ediという用語の唯一の出現は、この短いテキストスニペットにあり、EditorerstellungundModellierungseditorsの一部としてのみ見つけることができます

ただし、SQL Serverのfulltextindex(出現回数:1)にはまだediContainsTable(...)が1つの単語として含まれているため、検索時に返されます。なぜそれが単一の単語として認識されるのですか?

この振る舞いの説明はありますか?ありがとう。

4

1 に答える 1

0

ドイツ語の複合語は、自然言語のワードブレーカーで特別な構文解析を必要とします。たとえば、「Editorerstellung」は、「editor」、「erstellung」、「editorerstellung」の3つの別個の用語として解析および保存されます。ドイツ語の複合語の分析について広範な研究が行われており、技術は向上していますが、プロセスは完全ではありません。

表示されている動作は、ワードブレーカーで使用されているヒューリスティックが原因である可能性があります。上記のスニペットとSqlServer2012ワードブレーカーを使用して問題を再現することはできません。そのため、SQL Server2008R2とSqlServer2012の間のドイツ語のワードブレーカーのMicrosoftによる改善により問題が解決したか、含まれていなかったテキストがフルテキストインデックスの「edi」のソース。

sys.dm_fts_index_keywords_by_document()を使用して、インデックスに含まれる用語を確認できます。二分探索パターンを使用すると、「edi」用語を生成している特定のテキストに絞り込むことができるはずです。

于 2013-06-21T18:11:42.637 に答える