2006/11/24, Fabrice Colin <<a href="mailto:fabrice.colin@gmail.com">fabrice.colin@gmail.com</a>>:<div><span class="gmail_quote"></span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
On 11/24/06, Mikkel Kamstrup Erlandsen <<a href="mailto:mikkel.kamstrup@gmail.com">mikkel.kamstrup@gmail.com</a>> wrote:<br>> 2006/11/23, Fabrice Colin <<a href="mailto:fabrice.colin@gmail.com">fabrice.colin@gmail.com
</a>>:<br>> > What Magnus suggests may be useful for document 'sources' or 'groups' (for<br>> > lack of a better name), eg "Documents", "Applications", "Contacts",<br>> > "Conversations" etc... -as offered by some existing personal search
<br>> systems-<br>> > which may or may not map to individual indexes (that mapping being<br>> irrelevant).<br>><br>> That was exactly what I meant to cover with the "group" switch. Fx. the<br>> query "fabrice group:contacts" would return you. Searching without a
<br>> specified group would return matches from all groups. Perhaps the wiki is a<br>> bit unclear here...<br>><br>The Wiki is clear enough. It's just that it may be useful to provide<br>the consumer<br>application with a list of supported groups... unless we dictate which
<br>groups should<br>be supported by all engines.</blockquote><div><br><br>Well, my idea was to come up with a spec at some point in the mid-term
future (after the simple api is complete). On top of that the spec
should of course be extensible so that backends can have custom groups
- which implies the need for a method to do runtime introspection. I
just don't think the belongs in a simple search api.
<br> </div><br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">> > Well, AFAIK, dbus allows complex structures like arrays or dictionaries.
<br>><br>> Yeah, but that really only accounts as collections of simple data types in<br>> my book. What I meant was just that you can't have Query object, like fx<br>> Lucene does, and pass that over the wire. Not in a desktop neutral way at
<br>> least - or please correct me if I'm wrong! :-)<br>><br>Hmmm it depends on. As the dbus specification says, you can have "array of<br>array of array of ... struct of struct of struct of ...", which is
<br>probably flexible enough<br>to pass all the data held by a Query object.</blockquote><div><br><br>Yeah, we can hold the data of a query object, but you can't assign any
methods to it (unless you export it over dbus (which I don't think is a
good idea)). Methods to construct a query programmatically would have
to reside in a toolkit-dependent lib I think.
<br> </div><br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">> Right you are. I was a bit wasted last night when I answered Magnus (sorry)
<br>> - I just thought her deserved an answer sooner rather than later.<br>><br>No worries ;-)<br><br>> The question is then if this info should be stored in the manager daemon or<br>> the search engine. As I consider it more or less a design goal that the
<br>> daemon (or lib or what ever we end up with), should be expendable, I don't<br>> think such info should lie with the managing object. Also if this info would<br>> reside with the managing object that would also mean each query should go
<br>> through the managing interface, and I don't think I'm totally hooked on that<br>> idea.<br>><br>> To avoid code duplication we could develop a small lib or other dbus service<br>> to *optionally* handle these issues. I'm reluctant to impose any dependency
<br>> on the implementing engines.<br>><br>We could have an optional prefix (a switch-type, according to the<br>draft) for language,<br>so that this information is carried by the query string.<br>A braindead example : if the engine supports "language", "the moose
<br>language:english"<br>is interpreted as a query for "moose", while "the moose<br>language:swedish" is a query<br>for moose tea :-)</blockquote><div><br><br>I think that is a good idea. Default to having the backend deal
with all this and have a switch to override the runtime stemming. <br><br><br>Cheers,<br>Mikkel </div><br></div><br>