[Glass] How to find a string in a large number of strings ...

Martin McClure via Glass glass at lists.gemtalksystems.com
Fri Mar 18 15:31:39 PDT 2016

On 03/18/2016 02:34 PM, itlists at schrievkrom.de via Glass wrote:
> I want to find a string in a very large number of strings (3 millions
> and increasing).
> Should one use a simple Set ?
>  -> means, that lots of memory is used and perhaps lots of RAM is needed
>     in the GEM ... (total memory at least 40 Mbyte of data). Swapping ?
> Should I use an UnorderedCollection of Strings with Index (Equality) ?
>  -> how do I set an index on a set with Strings ?
>  -> perhaps like:
>        aSetOfStrings createEqualityIndexOn: '' withLastElementClass:
> String ?
> Another problem is, that these strings-set change two times the day ...
> mostly adding strings.
> Any hint ?

What is the key by which you look up the string?

If it is the entire string, (the string is 'foobar' and I know I want
'foobar') use a Set, this will be very efficient (but if you know the
entire string, why do you need to look it up at all?)

If it is a prefix of the string (the string is 'foobar' but I only know
I want the string that starts 'foo') use an index.

If you want to look up from some substring (the string is 'foobar' and I
know only that I want a string that contains 'oba') you might want to
build a more complex structure.



More information about the Glass mailing list