Icon View Thread

The following is the text of the current message along with any replies.
Messages 1 to 6 of 6 total
Thread Non index text filter
Wed, Feb 6 2008 9:49 AMPermanent Link

Roy Lambert

NLH Associates

Team Elevate Team Elevate

Tim

Having reached a point where my query generator is generating queries again I'm about to abuse it some more and build in the facility to do a text filter on non indexed fields.

I'm intending to link in my word generator and text filter units to the function so I get consistency. Since I'll have total control over the function my thoughts were

When generating the query read the ftiControl.Text file to set up the various parameters (EndOfWord,MinWordLength,MaxWordLength,AllowURLs,OnlyBaseURLs,AllowEMs,AllowWordsWithNumbers,TruncateLargeWords,STOP WORDS,PASS WORDS), add to that the WANTED WORDS and pass as parameters to the function. STOP, PASS and WANTED WORDS would be passed as stringlists (not sure how yet)

So the full function call would be

TEXTSEARCH(Field,EndOfWord,MinWordLength,MaxWordLength,AllowURLs,OnlyBaseURLs,AllowEMs,AllowWordsWithNumbers,TruncateLargeWords,StopWords,PassWords,WantedWords)

and would return a True/False

Does that sound a sensible way to go (apart from the fact that it'll be slooow)?

If so any idea how to create a stringlist which can be passed to a TEDBQuery with a function some of whose parameters are stringlists?

Roy Lambert
Wed, Feb 6 2008 1:50 PMPermanent Link

Tim Young [Elevate Software]

Elevate Software, Inc.

Avatar

Email timyoung@elevatesoft.com

Roy,

<< Does that sound a sensible way to go (apart from the fact that it'll be
slooow)? >>

I would suggest that the external function DLL read the parameters itself at
load time and keep them as global data, provided that the calling
application is simply passing parameters that never change apart from any
changes to the text file.   That should keep the function nice and tight,
and give you about the same performance as DBISAM.

--
Tim Young
Elevate Software
www.elevatesoft.com

Thu, Feb 7 2008 2:50 AMPermanent Link

Roy Lambert

NLH Associates

Team Elevate Team Elevate

Tim


>I would suggest that the external function DLL read the parameters itself at
>load time and keep them as global data, provided that the calling
>application is simply passing parameters that never change apart from any
>changes to the text file. That should keep the function nice and tight,
>and give you about the same performance as DBISAM.

I was thinking about that. The word generator and text filter have an initialisation section that loads the bumph but I don't know how often that's going to get called and I was concerned that it would be for each row. If its not then it makes it simpler for me to leave that to take care of itself and makes it a bit easier to program the generator.

Roy Lambert
Thu, Feb 7 2008 1:23 PMPermanent Link

Tim Young [Elevate Software]

Elevate Software, Inc.

Avatar

Email timyoung@elevatesoft.com

Roy,

<< I was thinking about that. The word generator and text filter have an
initialisation section that loads the bumph but I don't know how often
that's going to get called and I was concerned that it would be for each
row. If its not then it makes it simpler for me to leave that to take care
of itself and makes it a bit easier to program the generator. >>

Well, always remember that external modules are only loaded once per session
and then kept loaded until the session is disconnected.  Therefore, any
module creation/initialization code will only be called once.

--
Tim Young
Elevate Software
www.elevatesoft.com

Fri, Feb 8 2008 3:35 AMPermanent Link

Roy Lambert

NLH Associates

Team Elevate Team Elevate

Tim


>Well, always remember that external modules are only loaded once per session
>and then kept loaded until the session is disconnected. Therefore, any
>module creation/initialization code will only be called once.

That's the bit I wasn't sure of, but what sort of session? an EDBSession or a load the app session Smiley

The other thing I'm wondering about is thread safety. Any comments?

Roy Lambert
Fri, Feb 8 2008 12:57 PMPermanent Link

Tim Young [Elevate Software]

Elevate Software, Inc.

Avatar

Email timyoung@elevatesoft.com

Roy,

<< That's the bit I wasn't sure of, but what sort of session? an EDBSession
or a load the app session Smiley>>

An EDB session. Smiley

<< The other thing I'm wondering about is thread safety. Any comments? >>

As long as you're not trying to modify the global data from multiple
threads, then it will be fine.   The loading process only takes place in one
thread, guaranteed.

--
Tim Young
Elevate Software
www.elevatesoft.com

Image