Erik Hatcher schrieb:
Matthias,

This stuff looks great!   Certainly +1 on you continuing these efforts.

Thanks!


Regarding your choice of MooTools: have you considered using jQuery instead? The reason I ask is that we now have a jQuery-based schema browser in Solr's trunk and thus it is already there and usable within the Solr codebase. Many of my super savvy JavaScript/AJAX savvy pals have mentioned they prefer jQuery over MooTools, prototype, etc. I'm a bit out of my league here though, so certainly defer to others expertise in this area.

The reason I chose mootools was the nice support for class inheritance, so you are able to create a widget hierarchy in a very object orientated way. I have to admit that I lack knowledge about jQuery here (only have experience with mootools, dojo and prototype), but for sure I am willing to look at all reasonalbe technical possibilities.

I think - and your posting is a proof for that - that the decision for the concrete tools to use should be the first item on the agenda of this project and it also should be discussed with you people here on the list, who have a better look on the "big picture" of solr than me.


Perhaps already on your roadmap, I'd love to see Solr integration with SIMILE's Timeline, Exhibit, and their other viz stuff. I put some basic support for both Timeline and Exhibit into Flare.

Good proposals, IMHO when we have created a stable base library, it should be "easy" to create implementations for various external javascript libraries like stuff on SIMILE or google maps and the like.

matthias



    Erik


On Apr 1, 2008, at 9:31 AM, Matthias Epheser wrote:
Hello community

I am a student from Vienna currently writing his master thesis about "Fast and userfriendly information retrieval in large indices" (working title), that focuses on techniques like faceted browsing and field collapsing.

The funtionalities and internals of Solr cover a large part of my theoretical work and I also want to point out that ease of integration into existing projects and a good self declaring user interface are important things to consider when creating a faceting browsing solution.

As a showcase for these things I am creating a reusable Javascript Widget Library that directly queries solr using asynchronuous calls to create a very fast, dynamic and easy to use data browser.

                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

I now want to introduce my (planned) work to the community and propose the implementation, elaboration and documentation of this library as a Google Summer of Code 2008 project. I already participated in gsoc and I think it's a very good way for students to start contributing to an open soure project.

I started creating a small prototype a few weeks ago, you can test it here: http://lovo.test.dev.indoqa.com/mepheser/moobrowser/
It covers a fictional media library created by a testdata generator.

                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

It uses a prototype of my MooTools(http://mootools.net) based javascript library. Mootools are chosen because of the good inheritance mechanism, thus you can create a very "clean" widget system using baseclasses. As mentioned before, everything is created under the paradigm "keep it simple"

Looking at the html sourcecode, you just have to create empty divs that act as "targets" and then create an instance of Moobrowser using the solr url:

mooBrowser = new MooBrowser('url-of-solr');

Now you can add various widgets to this browser. Each widget consists of its javascript class and a xslt stylesheet that is used to create the appropriate response from solr. See http://lovo.test.dev.indoqa.com/mepheser/moobrowser/moobrowser.js for the js source code. Currently these widgets are supported in an alpha version:

- MooBrowserPageableResultWidget that creates the "result view" including paging buttons

- MooBrowserSingleFieldFacetWidget for simple facet fiels. These fields can be dependend on other fields, see "by medium" -> "image" as an example

- MooBrowserTreeFacetWidget: this is used to display hierarchical facets (see "by category" -> "sports" -> "tennis" -> ..
The data is stored in layers like category_0, category_1 in the index.

- new MooBrowserSearchFacetWidge for full text searching

All rendering is done using css, every "target" div is self-updating and delivers its fitting html after the user changes his selection.


                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Of cource I would formulate an "official" proposal containing tasks, timeline, etc. AFAIK, the timeline is extended till next moday.


WDYT?

Best regard,
Matthias



Reply via email to