an easy way to do this is to key both repeaters off the same model:
class mypage extends webpage {
class resultsmodel extends loadabledetachablemodel {
load() { return solr.search(...); }
}
mypage() {
setmodel(new resultsmodel());
add(new listview("a", getmodel()));
add(new listview("b", getmodel()));
}
}
that way both repeaters are reusing the same cached result.
-igor
On 9/18/07, Nicky Bulthuis <[EMAIL PROTECTED]> wrote:
>
> Dear Wicket Users,
>
> I have a slight problem, although problem might not be the correct word.
> I'll explain.
>
> I'm developing an application which allows the searching of metadata
> from scanned documents. For searching i'm using Solr and for the
> frontend i'm using Wicket. Both are new technologies to me and i'm
> having a lot of fun learning both. However, my implementation of the
> search page just doesn't feel exactly right. I was hoping to get some
> advice here about how to proceed.
>
> Solr has the ability to give me facets, which you can use to refine a
> search. That is a feature i want, but it also adds a problem.
> You search once, but get two different results. The first is the series
> of documents matching the search criteria, the second a list of facets
> about the documents in the search results. So, how do i only search
> once, and populate two different repeaters. Sofar i've done this in
> three different ways, but i'm not happy with either.
>
> 1. I've used a DataView for both the document list and the facet list.
> Both with a DataProvider doing the search and returning a subset. Where
> the facet list always returning the complete list.
> Eventhough this is easy to implement, it also makes me search twice for
> the same query, which is something i try to avoid. However my experience
> with solr is still very limited, so i'm not sure if this is that much of
> a problem in the end. But sofar i've been trying to avoid the double
> search.
>
> 2. My second try was by doing the search in the onBeforeRender method.
> Creating a new Pageable list for the documents and a normal ListView for
> the facets and then using addOrReplace to get them on the page.
> This is working just fine and i'm only doing one search. Except i've got
> this feeling that i'm not supposed to alter the components in the
> 'onBeforeRender' method. I could be wrong, but it just doesn't feel right.
>
> 3. I create a new page for every request with a different Query Object.
> So the page does the search, fills the list and displays it. Rewrite
> every link to construct a new SearchPage and show that one.
> The problem i'm having with this one is the constant contruct of new
> SearchPages. I should be reusing them.
>
> Due to my inexperience with Wicket i'm kind of at a loss on how to
> proceed and hope i can get some advice. So i guess my question comes
> down to, what is the proper way to populate two lists from one source,
> while still being able to modify the search criteria.
>
> I hope someone can give me some advice.
>
> Regards,
> Nicky
>
>
> --
> Nicky Bulthuis
> ValueCare BV
> Oudlaan 4
> 3515 GA Utrecht
> Mob: 06-41341545
> E-mail: [EMAIL PROTECTED]
> Web: www.valuecare.nl
>
> Indien dit bericht niet voor u is bedoeld dan verzoeken wij u vriendelijk
> ons te informeren via een retour bericht en dient u deze mail direct te
> vernietigen.
> ValueCare gebruikt virus scanners maar accepteert geen aansprakelijkheid
> voor virussen die de email mogelijk bevat.
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>