IBM nieuwsbrief e-office Query is not understandable tijdens het zoeken via een FTsearch
      
welkom     nieuws 2012     nieuws 2011     nieuws 2010     Lotus Notes Domino     e-office

Query is not understandable tijdens het zoeken via een FTsearch
Onlangs maakte Diana Aué van e-office voor een klant een agent die een import deed. Via een FTSearch werden er bestaande documenten in verschillende databases (met hetzelfde design) gezocht die moesten worden ge-update.

de foutmelding
Nu bleek in één database deze zoekcode de volgende fout te geven: "Query is not understandable".

Dit was de query: [MobileNumber]="0610014373".

Wanneer de code in een copy van de database met alleen een subset aan documenten gebruikt werd - om te testen- ging alles wel goed.
Ook in een andere database met hetzelfde design ging het zoeken geheel zonder fouten.

het zoeken naar de oorzaak
Mogelijke oorzaken van het probleem:

  1. het veld is niet van het type Text, of op sommige documenten toch van het type Number
    --> dit bleek niet het geval te zijn. Het veld was type Text en ook op alle document van het type Text
  2. de FTindex zou misschien corrupt zou zijn --> verwijderen (ook op file niveau) en het opnieuw aanmaken van de index was helaas niet de oplossing van het probleem
  3. er zit ergens een corrupt document in de database
    --> ook het uitvoeren van een compact proces door een beheerder bood geen oplossing

het inzicht
Toen het ook voor ons erg lastig werd dit op te lossen, begon er iets te dagen. Ooit had Diana eens van iemand gehoord dat als een veld ooit als een Number type geïndexeerd is geweest in een database, ditzelfde veld nooit meer goed als een Text veld geïndexeerd kan worden.

de verklaring
Nu bleek dat dit veld inderdaad jaren geleden een Number veld was. Nu is het een Text type, en op alle content in de database is het van het type Text. Ook het opnieuw aanmaken van een FTindex zou geen oplossing bieden voor dit probleem.

Dit verklaart ook waarom het testen van de code in een copy van de database wel goed ging: in die copy/ft-index is het veld nooit van het type Number geweest en dus kon het veld gewoon goed geïndexeerd worden. Ook in de andere databases waarin gezocht werd ging het zoeken goed omdat die databases pas later zijn aangemaakt en daarin het betreffende veld altijd van het type Text is geweest.

de oplossing
Het oplossen van het probleem was nu eenvoudig. We hebben een nieuw veld van het type Text aangemaakt, en die gevuld met de waarde uit het originele veld. Het zoeken op het nieuwe veld verliep vervolgens zonder problemen.