Symptomen

In een Engelstalige woordafbreking gebruikt u een full-text index-index-inhoud waarin woorden met toonaangevende decimaaltekens, zoals.325,.434,.646. Wanneer u probeert rijen in de index vinden door te zoeken op de decimale waarde (bijvoorbeeld.325), geen rijen worden geretourneerd.

Tijdelijke oplossing

Om dit probleem te omzeilen, gebruikt u een van de volgende methoden:

  • De neutrale woordafbreking gebruiken.

  • Plaats een nul vóór het decimaalteken wanneer u een Engelse woordafbreking gebruikt. Gebruik bijvoorbeeld "0.325" in plaats van '. 325" in uw zoekopdracht. De Engelse woordafbreking wordt correct verwerkt indexeren en zoeken als voorloopnullen worden aangetroffen.

Meer informatie

Stappen om het probleem te reproduceren

  1. Maak een volledige-tekstindex wilt maken van een index met woorden met toonaangevende decimaaltekens, zoals.325,.434 en.646.

  2. De volgende volledige-tekstquery gebruiken om te zoeken op deze waarden met behulp van een Engels woord breaker waarvan LCID 1033 is:

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


    Resultaten

    trefwoord

    group_id

    phrase_id

    exemplaar

    special_term

    display_term

    Opmerkingen

    0x007700610073006800650072

    1

    0

    1

    Exacte overeenkomst

    Ring

    0x002E003300310033

    1

    0

    2

    Exacte overeenkomst

    .325

    Het decimaalteken blijft

    0x006E006E00300064003300310033

    1

    0

    2

    Exacte overeenkomst

    nn0d325

    0x0078

    1

    0

    3

    Ruis Word

    x

    0x006E006E003400330038

    1

    0

    4

    Exacte overeenkomst

    .434

    Het decimaalteken blijft

    0x006E006E003400330038

    1

    0

    4

    Exacte overeenkomst

    nn434

    0x003000340036

    1

    0

    5

    Exacte overeenkomst

    .646

    Het decimaalteken blijft

    0x006E006E00340036

    1

    0

    5

    Exacte overeenkomst

    nn46

    0x007300680069006D

    1

    0

    6

    Exacte overeenkomst

    Platinum



  3. Probeer te zoeken op '. 325 "(met inbegrip van het decimaalteken):

    Select * from sys.dm_fts_parser('.325', 1033, 0,0) Using English word breaker to specify the ".325" search term.

    Opmerking We doen een overeenkomst niet ophalen.

    Resultaten

    trefwoord

    group_id

    phrase_id

    special_term

    display_term

    Opmerkingen

    0x003300310033

    1

    0

    1

    Exacte overeenkomst

    325

    Hiermee verwijdert u het decimaalteken wanneer u zoekt en 325 <>.325, dus er is geen rij geretourneerd

    0x006E006E003300310033

    1

    0

    1

    Exacte overeenkomst

    nn325



    In dit voorbeeld als u '. 325 ' als de zoekwaarde geen rijen worden geretourneerd. Dit komt doordat we de gegevens geïndexeerd door de decimale komma, maar de Engelse woordafbreking wordt het decimaalteken verwijderd tijdens het zoeken. Daarom we per ongeluk op 325 in plaats van.325 zoeken en er zijn geen resultaten gevonden.

    Een volledige-tekstindex doorzoeken met behulp van een Engels woord breaker voor woorden met toonaangevende decimaaltekens werkt goed als we de neutrale woordafbreking gebruiken.

  4. De volgende query uitvoeren met behulp van de neutrale woordafbreking:

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


    Resultaten

    trefwoord

    group_id

    phrase_id

    exemplaar

    special_term

    display_term

    Opmerkingen

    0x007700610073006800650072

    1

    0

    1

    Exacte overeenkomst

    Ring

    0x002E003300310033

    1

    0

    2

    Exacte overeenkomst

    .325

    Het decimaalteken blijft

    0x006E006E00300064003300310033

    1

    0

    2

    Exacte overeenkomst

    nn0d325

    0x0078

    1

    0

    3

    Ruis Word

    x

    0x002E003400330038

    1

    0

    4

    Exacte overeenkomst

    .434

    Het decimaalteken blijft

    0x006E006E00300064003400330038

    1

    0

    4

    Exacte overeenkomst

    nn0d434

    0x002E003000340036

    1

    0

    5

    Exacte overeenkomst

    .646

    Het decimaalteken blijft

    0x006E006E00300064003000340036

    1

    0

    5

    Exacte overeenkomst

    nn0d646

    0x007300680069006D

    1

    0

    6

    Exacte overeenkomst

    Platinum



    Nu zoeken op '. 325 ' werkt zoals verwacht.

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

    Resultaten

    trefwoord

    group_id

    phrase_id

    exemplaar

    special_term

    display_term

    Opmerkingen

    0x002E003300310033

    1

    0

    1

    Exacte overeenkomst

    .325

    0x006E006E00300064003300310033

    1

    0

    1

    Exacte overeenkomst

    nn0d325

Status

Microsoft heeft bevestigd dat dit probleem kan optreden in de Microsoft-producten die worden vermeld in de sectie 'Van toepassing op'.

Meer hulp nodig?

Uw vaardigheden uitbreiden
Training verkennen
Als eerste nieuwe functies krijgen
Deelnemen aan Microsoft insiders

Was deze informatie nuttig?

Hoe tevreden bent u met de taalkwaliteit?
Wat heeft uw ervaring beïnvloed?

Bedankt voor uw feedback.

×