2007/7/19, Jos van den Oever <[EMAIL PROTECTED]>:

2007/7/16, Mikkel Kamstrup Erlandsen <[EMAIL PROTECTED]>:
> I have a few suggestions for updates to the xesam search spec.
>
> * API:
> Remove the session properties search.blocking and search.live. These
seemed
> to cause more confusion than I anticipated. These can be emulated in the
> client side lib as far as my scribblings can tell. Anoter solution might
> just be better documentation of course...
>
> Some of you now have actual experience with these, what is your feel?
>
> The reason for having these properties in the first place was to allow
> easier usage of the dbus interface directly - ie not via a client lib.
>
> What this would mean for the api methods:
>  * GetHits should always block until the requested number of hits has
been
> found or the entire index has been searched (in which case the
SearchDone
> signal will be emitted too).
>  * CountHits should always block until the entire index has been
searched
>  * No other methods should block
>
> * Query Language:
> I suggest we remove the "type" attributeon the query element. You can
just
> specify the Category- or StoredAs fields in you selectors.

I completely agree on all suggestions.
One more suggestion: the minimal interval between result signals
should be sane or settable.


Valid point. To avoid signal spamming I take it. How about a session
property  hit.batch.size that is an integer determining how many hits the
server should collect before emitting HitsAdded. In case the entire index
has been searched but < hit.batch.size hits has been found HitsAdded should
be emitted(num_hits) right before SearchDone.

On the topic of remembering the hits.
In ideal world, the server could be clever and get the right file from
the hit number. In reality, this is quite hard. Atm the server should
keep a vector with uris internally. I think we should allow the server
to have a sane maximum of hits that are retrievable. E.b. CountHits
might return 1 million, but you would only be able to retrieve the
first 100k.


This makes sense given that  the scoring algorithms on servers are good
enough. But judging by the extraordinary amount of talent we have in the
server-side dev camp this is no problem of course :-)

How about a read-only session property search.maxhits? We could specify that
in order to be xesam compliant this value must be > 1000 or something - just
so that apps wont have to sanity checks galore.

This is actually a scalability issue. We should allow the search to
modify the vector when the hit has not yet been retrieved and only
guarantee reproducibility for hits that were retrieved already. In
combination with a maximum history size this would handle most
performance problems.


Yeah, we are handling the exact same problems at work :-) I think  we have
solved it here (atleast up to 100M or so), but it is not exactly client side
software...

Cheers,
Mikkel
_______________________________________________
xdg mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/xdg

Reply via email to