現象

英語ワード ブレーカーでは、.325、.434、.646 など、業界をリードする 10 進数のポイントを持つ単語が含まれているフルテキスト インデックスをインデックスのコンテンツを使用します。検索することによって 10 進数 (たとえば、.325 かでない行インデックスの行を検索しようとするとが返されます。

回避策

この問題を回避するには、以下のいずれかの方法を使用します。

  • ニュートラル ワード ブレーカーを使用します。

  • 英単語の分解プログラムを使用する場合は、小数点の前にゼロを配置します。代わりに「0.325」を使用して、たとえば、"です。 325」で検索します。英語ワード ブレーカーは、インデックス作成と検索、先頭のゼロが検出された場合に正しく処理されます。

詳細

問題を再現する手順を実行します。

  1. .325、.434、.646 などの業界をリードする 10 進数のポイントを持つ単語が含まれているインデックスを作成するのには、フルテキスト インデックスを作成します。

  2. LCID は 1033、英語のワード ブレーカーを使用してこれらの値を検索するには、次のフルテキスト クエリを使用します。

    Select * from sys.dm_fts_parser('"Ring, .325 x .434 .646 Platinum"', 1033, 0,0)


    結果

    キーワード

    group_id

    phrase_id

    出現

    special_term

    display_term

    注:

    0x007700610073006800650072

    1

    0

    1

    正確に一致します。

    リング

    0x002E003300310033

    1

    0

    2

    正確に一致します。

    .325

    10 進数を保持します。

    0x006E006E00300064003300310033

    1

    0

    2

    正確に一致します。

    nn0d325

    0x0078

    1

    0

    3

    ノイズ ワード

    x

    0x006E006E003400330038

    1

    0

    4

    正確に一致します。

    .434

    10 進数を保持します。

    0x006E006E003400330038

    1

    0

    4

    正確に一致します。

    nn434

    0x003000340036

    1

    0

    5

    正確に一致します。

    .646

    10 進数を保持します。

    0x006E006E00340036

    1

    0

    5

    正確に一致します。

    nn46

    0x007300680069006D

    1

    0

    6

    正確に一致します。

    プラチナ



  3. 検索しようとしています」. 325"(小数点を含む)。

    Select * from sys.dm_fts_parser('.325', 1033, 0,0) Using English word breaker to specify the ".325" search term.
  4. 一致は受け取りません。

    結果

    キーワード

    group_id

    phrase_id

    special_term

    display_term

    注:

    0x003300310033

    1

    0

    1

    正確に一致します。

    325

    行が返されないように、10 進数を検索するとき、.325、325 の <> を削除します。

    0x006E006E003300310033

    1

    0

    1

    正確に一致します。

    nn325



    入力する場合、この例では"です。 325」として検索する値、行は返されません。、小数点位置を保持することにより、データのインデックスを作成しましたが、英語のワード ブレーカーは、検索プロセス中に小数点を削除するためです。したがって、誤って.325 ではなく 325 で検索し、一致が見つからない。

    フル テキスト インデックスを検索するには、業界をリードする 10 進数のポイントが存在する単語が英語の単語の分解プログラムを使用して正常に動作、ニュートラル ワード ブレーカーを使用する場合。

  5. ニュートラル ワード ブレーカーを使用して、次のクエリを実行します。

    Select * from sys.dm_fts_parser('"Ring, .325 x .434 .646 Platinum"', 0, 0,0)


    結果

    キーワード

    group_id

    phrase_id

    出現

    special_term

    display_term

    注:

    0x007700610073006800650072

    1

    0

    1

    正確に一致します。

    リング

    0x002E003300310033

    1

    0

    2

    正確に一致します。

    .325

    10 進数を保持します。

    0x006E006E00300064003300310033

    1

    0

    2

    正確に一致します。

    nn0d325

    0x0078

    1

    0

    3

    ノイズ ワード

    x

    0x002E003400330038

    1

    0

    4

    正確に一致します。

    .434

    10 進数を保持します。

    0x006E006E00300064003400330038

    1

    0

    4

    正確に一致します。

    nn0d434

    0x002E003000340036

    1

    0

    5

    正確に一致します。

    .646

    10 進数を保持します。

    0x006E006E00300064003000340036

    1

    0

    5

    正確に一致します。

    nn0d646

    0x007300680069006D

    1

    0

    6

    正確に一致します。

    プラチナ



    検索するようになりましたが、"です。 325"は正常に動作します。

    Select * from sys.dm_fts_parser('.325', 0, 0,0) Specifying Neutral word breaker.

    結果

    キーワード

    group_id

    phrase_id

    出現

    special_term

    display_term

    注:

    0x002E003300310033

    1

    0

    1

    正確に一致します。

    .325

    0x006E006E00300064003300310033

    1

    0

    1

    正確に一致します。

    nn0d325

ヘルプを表示

スキルを磨く
トレーニングの探索
新機能を最初に入手
Microsoft Insider に参加する

この情報は役に立ちましたか?

言語の品質にどの程度満足していますか?
どのような要因がお客様の操作性に影響しましたか?

ご意見をいただきありがとうございます。

×