Database - quickest way to do this?

David Bovill david at openpartnership.net
Sun Jun 10 09:57:49 EDT 2007


On 10/06/07, Ruslan Zasukhin <sunshine at public.kherson.ua> wrote:
>
>
> > So I guess I do an "or" SQL search for all these keywords, and then loop
> > through them checking hits. Or do I do "AND" searches, and iterate
> replacing
> > the "AND" with "OR" to widen the search?
>
> 1) Actually it is not clear:
>     your result should contain OR or AND for words?
>
>           word1 AND word2 ...
> or
>           word1 OR word2 ...


Sorry - to be clear. Lets call it a find similar search.

I have a handler that is tagged "xml,html,array,add,combine,base64,david...
etc" and I want to find siilar handlers ranked by priority, so handlers
which contain all the keywords come first, the taglist above is ordered by
importance so "xml" is more important than "html" - so I'm looking for a
design pattern for the search - I guess this has been done so many times and
its an art - so I'd like not to reinvent the wheel?


Not a fact comparing to memory arrays, :-)
> but you did not mention size of your table, i.e. How many records.


I have 4-10,000 handlers to search, which could grow several fold if other
people submitted handlers, each of which has keywords added and associated
metadata partucularly urls, the handlers are stored as text files in svn,
keywords are automatically generated from handlers, and customised by the
contributor.


> 2) Do you think about LOCAL db, or you need access remote server ?
>     it seems if you talk about lists or SqlLite, it is local
>     right ?


Yes - but mirrored on the server. The server would have the same schema as
the local db, users could search the online db for individual handlers, or
download the whole library via svn or other methods and search fast locally
within the ide.

3) for now I can give this point:
> Valentina API (and V4REV) also, has LOW LEVEL API calls.
>
>   * Update S(r) in the list of Widow asynchronous.
> ---------------------------------------------------
>
> Above this is the only algorithm to split the whole task into few steps on
> low level and get asynchronous execution as you did want.


Sounds good - but how does the asynchronous execution work - does the
external issue callbacks you can trap in Rev?



More information about the use-livecode mailing list