2007/1/12, Jean-Francois Dockes &lt;<a href="mailto:jean-francois.dockes@wanadoo.fr">jean-francois.dockes@wanadoo.fr</a>&gt;:<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;">
<br>Just a few opinions/comments/votes on recent issues:<br><br>- Need for a query-closing call and backend resource management issues: It<br>&nbsp;&nbsp;is up to the backend to manage its resources, and decide how processing<br>&nbsp;&nbsp;should be split between Query() and GetHitProperties().
</blockquote><div>&nbsp;</div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">&nbsp;&nbsp;To make things easier, I am in favour of a CloseQuery() call which
<br>&nbsp;&nbsp;well-behaved applications will use, and also of specifying that<br>&nbsp;&nbsp;query_handles can become stale, and that applications should then restart<br>&nbsp;&nbsp;the query (which opens the question of error reports which is still a
<br>&nbsp;&nbsp;blank area).</blockquote><div><br><br>
Check.&nbsp; It seems people agree with you on this. I&#39;ll update the wiki. <br>&nbsp;</div><br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">- CountHits() / GetHitproperties() racy-ness: It is up to the backend to
<br>&nbsp;&nbsp;maintain consistency inside a single opened query, the current interface<br>&nbsp;&nbsp;allows it (unlike the previous one using the query string as a bad<br>&nbsp;&nbsp;query_handle).<br><br>&nbsp;&nbsp;Ideally the Query() call would open some kind of database snapshot which
<br>&nbsp;&nbsp;would be preserved as long as the query_handle is valid. This may be<br>&nbsp;&nbsp;feasible or not with the current backends, which are expected to just &quot;do<br>&nbsp;&nbsp;their best&quot;, which the current draft does not prevent. Aren&#39;t things such
<br>&nbsp;&nbsp;as CountHits() usually considered to only return estimates anyway ?</blockquote><div><br>Well. It could be noted in the wiki that CountHits is not guaranteed to return the correct number (especially on large result sets).
<br>&nbsp;</div><br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">- GetHitProperties result list as map or sequence: as Fabrice wrote, the<br>&nbsp;&nbsp;object identifiers are not useful. The results are requested as slices
<br>&nbsp;&nbsp;from of an ordered list (offset/limit), and should be returned as a<br>&nbsp;&nbsp;simple sequence or array of (propertyName=&gt;propertyValue) maps.<br><br>&nbsp;&nbsp;Magnus&#39; initially proposed the response to be:<br>&nbsp;&nbsp; &quot;A map mapping each hit (sequence number) to a map of property-list of
<br>&nbsp;&nbsp;&nbsp;&nbsp; values pairs.&quot;<br><br>&nbsp;&nbsp;I think that the sequence number can be kept implicit:<br><br>&nbsp;&nbsp;&nbsp;&nbsp;Query (in s query_string, out i query_handle)<br>&nbsp;&nbsp;&nbsp;&nbsp;GetHitProperties ( in s query_handle, in i offset, in i limit,<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; in as properties, out (sequence of maps) response )</blockquote><div><br><br>The return value could be stripped of all maps and use the same ordering of properties as in the properties input value. Fx the call:
<br><br>&nbsp; GetHitProperties (query_handle,0, 2, [&quot;uri&quot;, &quot;dc:title&quot;, &quot;mime&quot;])<br><br>could return:<br><br>[<br>&nbsp;[&quot;<a href="file:///home/mikkel/delta_comp.pdf">file:///home/mikkel/delta_comp.pdf
</a>&quot;, &quot;Delta Complexes&quot;, &quot;application/pdf&quot;]<br>&nbsp;[&quot;<a href="file:///home/mikkel/summa.svg">file:///home/mikkel/summa.svg</a>&quot;, &quot;Summa Logo&quot;, &quot;image/svg+xml&quot;]<br>]<br>
<br>From an optimization point of view this is probably the best we can get. This is also how track er currently does, and it is relatively easy to work with.<br><br>The reason why I&#39;m hesitating to go for this solution is the live api. It would be really nice to be able to use the same data structures here. The live api however has a need to be able to tell the consumer that *this particular hit* has become invalid.
<br><br>A way around this could be to always have the first element in the response list be a unique hit identifier. Or the last element for that matter - this way the returned properties would have the same indices as the requested properties.
<br><br>We could ease up on the global-identifier thing, and just let the identifier be relative to the given query handle.<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;">
- Using URI as key: as previously stated I think that this is a bad idea.</blockquote><div><br>+1 <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;">
- Accessing Snippets individually: no need for GetSnippets(), use:<br>&nbsp;&nbsp;GetHitProperties(query_handle, offset, 1, [&quot;Snippet&quot;])</blockquote><div><br>As far as I can tell, this is the general consensus...<br><br>Cheers,
<br>Mikkel<br><br>PS: Be sure to check out the query language proposal at <a href="http://wiki.freedesktop.org/wiki/WasabiQueryLanguage">http://wiki.freedesktop.org/wiki/WasabiQueryLanguage</a><br></div><br></div>