Solr SRW Service

classic Classic list List threaded Threaded
7 messages Options
Reply | Threaded
Open this post in threaded view
|

Solr SRW Service

Ian Ibbotson-2
Hiya all...

I'm interested in the possibility of contributing SRW/SRU web services
interface/module to solr (see http://www.loc.gov/standards/sru/).
SRW/SRU is the web service definition which is often used along-side or
instead-of the more traditional Z39.50 protocol for cross/meta
searching. a solr SRW/SRU interface would enable meta-search engines to
transparently include solr repository search results by only configuring
the base URL of the service. I've already got the much code to do much
of whats needed (IE, CQL to Lucene query rewriters and code to generate
the right stubs using axis etc). Actually, I might be up for creating a
z3950 module too if anyone is interested?

So my first question really would be... Is anyone out there already
working on such a beast? If so, do you need any help? Seems pointless to
create a second add-on. I've searched the lists (Not in any great depth
tho) and can't see any references to SRW/Z3959. Assuming nobody is, I've
got some follow-up questions about the best way to package up what might
be add-on modules.. is this list the right place to ask?

Cheers for your time,

e.

Reply | Threaded
Open this post in threaded view
|

Re: Solr SRW Service

edsu
CONTENTS DELETED
The author has deleted this message.
Reply | Threaded
Open this post in threaded view
|

Re: Solr SRW Service

Erik Hatcher
In reply to this post by Ian Ibbotson-2

On Nov 20, 2006, at 2:15 PM, Ian Ibbotson wrote:

> Hiya all...
>
> I'm interested in the possibility of contributing SRW/SRU web services
> interface/module to solr (see http://www.loc.gov/standards/sru/).
> SRW/SRU is the web service definition which is often used along-
> side or
> instead-of the more traditional Z39.50 protocol for cross/meta
> searching. a solr SRW/SRU interface would enable meta-search  
> engines to
> transparently include solr repository search results by only  
> configuring
> the base URL of the service. I've already got the much code to do much
> of whats needed (IE, CQL to Lucene query rewriters and code to  
> generate
> the right stubs using axis etc). Actually, I might be up for  
> creating a
> z3950 module too if anyone is interested?


Why do you need Axis for this?

> So my first question really would be... Is anyone out there already
> working on such a beast? If so, do you need any help? Seems  
> pointless to
> create a second add-on. I've searched the lists (Not in any great  
> depth
> tho) and can't see any references to SRW/Z3959. Assuming nobody is,  
> I've
> got some follow-up questions about the best way to package up what  
> might
> be add-on modules.. is this list the right place to ask?

Solr has some pluggable capability, detailed here:

        <http://wiki.apache.org/solr/SolrPlugins>

You can simply create your code, which I presume would entail a  
SolrRequestHandler and a QueryResponseWriter, and distribute it as a  
JAR that others could just drop in and run with it.

        Erik

Reply | Threaded
Open this post in threaded view
|

Re: Solr SRW Service

Chris Hostetter-3
: > got some follow-up questions about the best way to package up what
: > might
: > be add-on modules.. is this list the right place to ask?

This list is definitely the right place to start, and As Erik mentioned,
this wiki is the first place to look if you are interested in making an
Addon...

: <http://wiki.apache.org/solr/SolrPlugins>
:
: You can simply create your code, which I presume would entail a
: SolrRequestHandler and a QueryResponseWriter, and distribute it as a
: JAR that others could just drop in and run with it.

The one hitch here is that the choice of RequestHandler and
QueryResponseWriter are driven by URL params, and my skimming of the SRU
URL is that SRU has some very specific requirements on what the URL params
can/should be ... one way to deal with that might be to write a new
Servlet ... but another approach might be to tell people "if you want to
use Solr as an SRU service, you must register SruRequestHandler with the
name "standard" and you must register the SruResponseWriter with the name
"standard" (since those are the defaults Solr uses when the qt and wt
params aren't specified) and then http://localhost:8983/solr/select will
return your "SRU Explain" page, and be the base URL for all SRU requests.

...but i digress: the point is you can probably impliment everything
neccessary for SRU using a custom request handler that does all your query
parsing and a custom reponse writer that formats the results
appropriately -- onece you have those, then it's just a qustion of how
exactly you need to meet the requirements for query params.

Ian: I'm not sure how familiar you are with the internals of Solr (or
Lucene for that matter) but once you've got the basics of the example app
and the tutorial down, take a look the SolrPlugins wiki and the guts of
the StandardRequestHandler and it should (hopefully) be clear how you
could go about implimenting your own SruRequestHandler.


-Hoss

Reply | Threaded
Open this post in threaded view
|

Re: Solr SRW Service

Ian Ibbotson-2
In reply to this post by Erik Hatcher
Thanks for the responses, couple of follow-ups

> Why do you need Axis for this?

Well you certainly don't for the SRU implementation, but for SRW I'd
just say that (in all the SRW implementations i've done so far) it's a
case of the right tool for the right job. Of course we can hand craft
the codecs and parse/produce the XML by hand. However, the SRU/SRW
community comes from a background of interoperability as a sacrosanct
requirement. Given that background, having something parse wsdl and
produce your codecs for you gives people (me) a warm fuzzy feeling when
it comes to WSI compliance. It also makes the release process much
easier when it comes to upgrading the protocol version: Just pop a new
wsdl in the build tree and compile. Of course there are other reasons
too, but thats a starter for 10 :)

> Solr has some pluggable capability, detailed here:

Ah ok thanks for that. I've taken a quick look and I'm trying to figure
out how we might be able too expose extra features, like the ability to
request results be returned in different schemas. I'll keep at it tho
and check back if I have any questions.

Cheers,
Ian.


On Mon, 2006-11-20 at 16:35 -0500, Erik Hatcher wrote:

> On Nov 20, 2006, at 2:15 PM, Ian Ibbotson wrote:
> > Hiya all...
> >
> > I'm interested in the possibility of contributing SRW/SRU web services
> > interface/module to solr (see http://www.loc.gov/standards/sru/).
> > SRW/SRU is the web service definition which is often used along-
> > side or
> > instead-of the more traditional Z39.50 protocol for cross/meta
> > searching. a solr SRW/SRU interface would enable meta-search  
> > engines to
> > transparently include solr repository search results by only  
> > configuring
> > the base URL of the service. I've already got the much code to do much
> > of whats needed (IE, CQL to Lucene query rewriters and code to  
> > generate
> > the right stubs using axis etc). Actually, I might be up for  
> > creating a
> > z3950 module too if anyone is interested?
>
>
> Why do you need Axis for this?
>
> > So my first question really would be... Is anyone out there already
> > working on such a beast? If so, do you need any help? Seems  
> > pointless to
> > create a second add-on. I've searched the lists (Not in any great  
> > depth
> > tho) and can't see any references to SRW/Z3959. Assuming nobody is,  
> > I've
> > got some follow-up questions about the best way to package up what  
> > might
> > be add-on modules.. is this list the right place to ask?
>
> Solr has some pluggable capability, detailed here:
>
> <http://wiki.apache.org/solr/SolrPlugins>
>
> You can simply create your code, which I presume would entail a  
> SolrRequestHandler and a QueryResponseWriter, and distribute it as a  
> JAR that others could just drop in and run with it.
>
> Erik
>

Reply | Threaded
Open this post in threaded view
|

Re: Solr SRW Service

Erik Hatcher
Right, I was questioning the use of Axis for SRU, not for SRW - sorry  
I didn't make that clear.

        Erik


On Nov 21, 2006, at 2:27 AM, Ian Ibbotson wrote:

> Thanks for the responses, couple of follow-ups
>
>> Why do you need Axis for this?
>
> Well you certainly don't for the SRU implementation, but for SRW I'd
> just say that (in all the SRW implementations i've done so far) it's a
> case of the right tool for the right job. Of course we can hand craft
> the codecs and parse/produce the XML by hand. However, the SRU/SRW
> community comes from a background of interoperability as a sacrosanct
> requirement. Given that background, having something parse wsdl and
> produce your codecs for you gives people (me) a warm fuzzy feeling  
> when
> it comes to WSI compliance. It also makes the release process much
> easier when it comes to upgrading the protocol version: Just pop a new
> wsdl in the build tree and compile. Of course there are other reasons
> too, but thats a starter for 10 :)
>
>> Solr has some pluggable capability, detailed here:
>
> Ah ok thanks for that. I've taken a quick look and I'm trying to  
> figure
> out how we might be able too expose extra features, like the  
> ability to
> request results be returned in different schemas. I'll keep at it tho
> and check back if I have any questions.
>
> Cheers,
> Ian.
>
>
> On Mon, 2006-11-20 at 16:35 -0500, Erik Hatcher wrote:
>> On Nov 20, 2006, at 2:15 PM, Ian Ibbotson wrote:
>>> Hiya all...
>>>
>>> I'm interested in the possibility of contributing SRW/SRU web  
>>> services
>>> interface/module to solr (see http://www.loc.gov/standards/sru/).
>>> SRW/SRU is the web service definition which is often used along-
>>> side or
>>> instead-of the more traditional Z39.50 protocol for cross/meta
>>> searching. a solr SRW/SRU interface would enable meta-search
>>> engines to
>>> transparently include solr repository search results by only
>>> configuring
>>> the base URL of the service. I've already got the much code to do  
>>> much
>>> of whats needed (IE, CQL to Lucene query rewriters and code to
>>> generate
>>> the right stubs using axis etc). Actually, I might be up for
>>> creating a
>>> z3950 module too if anyone is interested?
>>
>>
>> Why do you need Axis for this?
>>
>>> So my first question really would be... Is anyone out there already
>>> working on such a beast? If so, do you need any help? Seems
>>> pointless to
>>> create a second add-on. I've searched the lists (Not in any great
>>> depth
>>> tho) and can't see any references to SRW/Z3959. Assuming nobody is,
>>> I've
>>> got some follow-up questions about the best way to package up what
>>> might
>>> be add-on modules.. is this list the right place to ask?
>>
>> Solr has some pluggable capability, detailed here:
>>
>> <http://wiki.apache.org/solr/SolrPlugins>
>>
>> You can simply create your code, which I presume would entail a
>> SolrRequestHandler and a QueryResponseWriter, and distribute it as a
>> JAR that others could just drop in and run with it.
>>
>> Erik
>>

Reply | Threaded
Open this post in threaded view
|

Re: Solr SRW Service

edsu
CONTENTS DELETED
The author has deleted this message.