lucene-solr-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Matthias Epheser <>
Subject [GSOC proposal]: Solr javascript client library
Date Tue, 01 Apr 2008 13:31:58 GMT
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 

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 
It covers a fictional media library created by a testdata generator.


It uses a prototype of my MooTools( 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 for 
the js source code. Currently these widgets are supported in an alpha 

- 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.


Best regard,

View raw message