Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Dit onderwerp bevat aanbevolen procedures en suggesties voor het valideren en oplossen van problemen met uw IWordBreaker- en IStemmer--implementaties.
Dit onderwerp is als volgt ingedeeld:
- Beste praktijken
- Stemmer-consistentie testen
- Testen op ongeldige invoer in de Stemmer
- Word Breaker-consistentie testen
- Testen op ongeldige invoer in de Word breaker
Beste praktijken
- Zorg ervoor dat het threadingmodel voor taalbronnen is ingesteld op 'beide' in het register.
- Plaats waar mogelijk taalgegevens in een resource in uw DLL in plaats van in een afzonderlijk bestand. Hierdoor is het DLL-bestand eenvoudiger te installeren en veiliger. Daarnaast leidt het plaatsen van taalgegevens in een resource tot verbeterde prestaties voor dat taalresourceonderdeel.
- Verminder de systeembronnen die door taalbroncomponenten worden gebruikt. Als elk exemplaar van een taalresourceobject bijvoorbeeld alleen-lezentoegang tot een lexicon nodig heeft, kunt u overwegen het lexicon over alle exemplaren te delen.
- Overweeg het gebruik van de neutrale woordonderbreker om tekst te verwerken die niet in de taal of landinstelling van uw woordenonderbrekerimplementatie is. Dit helpt ervoor te zorgen dat tekst consistent wordt verwerkt in alle talen.
- Controleer alle retourcodes en retourneer ze vanuit functies zoals IStemmer::GenerateWordForms en IWordBreaker::BreakText. Als het indexeren mislukt, is het belangrijk om de fout door te geven, zodat de gebruiker wordt geïnformeerd welke documenten zijn geïndexeerd.
Testen van stemmerconsistentie
We raden u aan om de prestaties van een IStemmer implementatie te controleren op consistentie onder de volgende voorwaarden:
- De stemmer functioneert consistent bij meerdere oproepen naar IStemmer::Init. De stemmer herinitialiseert met dezelfde parameters als bij de vorige initialisatie, zonder de parameters vrij te geven.
- Gezien dezelfde testverzameling en herhalingen van dezelfde query, produceert IStemmer::GenerateWordForms de identieke uitvoer en worden identieke aanroepen uitgevoerd naar de methoden van de IWordFormSink object.
Testen op ongeldige invoer in de stemmer
U wordt aangeraden te controleren hoe de IStemmer-methoden alle fouten met betrekking tot ongeldige parameters verwerken. Daarnaast raden we u aan ervoor te zorgen dat de stemmer-methoden geen onverwerkte uitzonderingen veroorzaken. De stemmer moet de volgende fouten verwerken:
- Aanroepen naar IStemmer::Init- met pfLicense- ingesteld op NULL-. Init-proces mislukt en veroorzaakt geen toegangsschending.
- Aanroepen naar IStemmer::GetLicenseToUse- met de parameter ppwcsLicense ingesteld op NULL-. IStemmer::GetLicenseToUse leidt niet tot een schending van de toegang.
- Aanroep naar IStemmer::GenerateWordForms met de parameter pwcInBuf ingesteld op NULL. IStemmer::GenerateWordForms mislukt (retourneert E_FAIL) en leidt niet tot een schending van de toegang.
- Aanroepen naar IStemmer::GenerateWordForms met de parameter cwc gelijk aan 0. IStemmer::GenerateWordForms retourneert (retourneert S_OK) en leidt niet tot een schending van de toegang.
- Oproep naar IStemmer::GenerateWordForms met de parameter pwcInBuf op NULL gezet en de parameter cwc gelijk aan 0. IStemmer::GenerateWordForms mislukt (retourneert E_FAIL) en leidt niet tot een schending van de toegang.
Consistentie van woordafbreking testen
U wordt aangeraden ervoor te zorgen dat de IWordBreaker--implementatie consistent presteert onder de volgende voorwaarden:
- Word-onderbreking presteert consistent bij meerdere oproepen van de methode IWordBreaker::Init. De woordafbreker herinitializeert met dezelfde parameters als bij de vorige initialisatie, zonder de parameters los te laten.
- Gezien dezelfde testverzameling en herhalingen van dezelfde query, produceert de methode IWordBreaker::BreakText de identieke uitvoer en worden identieke aanroepen uitgevoerd naar de methoden van de IWordSink- en IPhraseSink-objecten.
Testen van ongeldige invoer in de Woordafbreker
U wordt aangeraden ervoor te zorgen dat de IWordBreaker--methoden alle fouten verwerken die betrekking hebben op ongeldige parameters. Daarnaast raden we u aan ervoor te zorgen dat de methoden voor woordonderbreking geen onverwerkte uitzonderingen veroorzaken. De woordonderbreker moet de volgende functies uitvoeren en de volgende fouten afhandelen:
- Het oproepen van IWordBreaker::Init moet LANGUAGE_E_DATABASE_NOT_FOUND of S_OK retourneren.
- Aanroep van IWordBreaker::Init initialiseert met succes de parameter pfLicense als FALSE en roept IStemmer::GetLicenseToUse op en leidt niet tot een schending van de toegang.
- Woordonderbreker leest niet voorbij het einde van de parameter awcBuffer in de methode IWordBreaker::BreakText.
- Aanroepen naar IWordBreaker::BreakText- met de pwcInBuf- ingesteld op NULL-. IWordBreaker::BreakText mislukt (retourneert E_FAIL) en leidt niet tot een schending van de toegang.
- Aanroep naar IWordBreaker::BreakText met de parameter cwc gelijk aan 0. IWordBreaker::BreakText retourneert succesvol (S_OK) en leidt niet tot een schending van de toegang.
- Roep de methode IWordBreaker::BreakText aan met de parameter pwcInBuf ingesteld op NULL- en de parameter cwc gelijk aan 0. IWordBreaker::BreakText mislukt (retourneert E_FAIL) en leidt niet tot een schending van de toegang.
- Zinnen die tijdens het maken van de index worden gegenereerd, bevatten hetzelfde aantal woorden.
- Frases worden gegenereerd tijdens het maken van de index via opeenvolgende aanroepen naar de methoden IWordFormSink::PutWord en IWordFormSink::PutAltWord. De woordonderbreker gebruikt alleen het IPhraseSink object tijdens het opvragen.
Verwante onderwerpen
-
Een Woordonderbreker en Stemmer- implementeren