SRU and Lucene

Download Report

Transcript SRU and Lucene

OCLC Online Computer Library Center
SRU and Lucene
Ralph LeVan
Research Scientist
[email protected]
SRU Overview
A Simple Web Service
– Supports REST-ful and SOAP requests
– Responses are always XML records
Supports Search and Retrieve
Uses a Standard Query Grammar
Supports Self-Configuring Clients
A Gateway to Local Databases
SRU Features
Explain Records
CQL Query Grammar
Persistent Result Sets
XML Database Records Returned
Index Browses
Stylesheets
Explain Records
serverInfo
databaseInfo
metaInfo
indexInfo
schemaInfo
configInfo
serverInfo
Generated Automatically
– host
– port
– database
databaseInfo
From SRWDatabase.props
– databaseInfo.title
– databaseInfo.description
– databaseInfo.contact
Provided Automatically
– implementation
metaInfo
From SRWDatabase.props
– metaInfo.dateModified
– metaInfo.aggregatedFrom
– metaInfo.dateAggregated
indexInfo
Generated Automatically
– “local” index set and Lucene index names
From SRWDatabase.props
– qualifier.<indexSet>.<indexName> =
<LuceneIndexName>
– Used only if you want to map other index
names to your Lucene indexes (e.g.
qualifier.dc.identifier=id)
schemaInfo
Generated Automatically
– LuceneDocument
From SRWDatabase.props
–
–
–
–
–
–
–
xmlSchemas=<list of name>
<schemaName>.identifier=
<schemaName>.location=
<schemaName>.namespace=
<schemaName>.title=
[<schemaName>.transformer=]
[<schemaName>.resolver=]
schemaInfo Example
xmlSchemas=LuceneDocument, DC
LuceneDocument.identifier=info:srw/schema/1/L
uceneDocument
LuceneDocument.location=http://www.oclc.org/
standards/Lucene/schema/LuceneDocument.x
sd
LuceneDocument.namespace=http://www.oclc.o
rg/LuceneDocument
LuceneDocument.title=Lucene Demo Database
records in their internal format
schemaInfo Example (cont.)
DC.identifier=info:srw/schema/1/dc-v1.1
DC.location=http://www.loc.gov/zing/srw
/dc-schema.xsd
DC.title=DC: Dublin Core Elements
DC.transformer=LuceneToDC.xsl
configInfo
Generated Automatically
– maximumRecords (20)
– numberOfRecords (10)
– resultSetTTL (300)
From SRWDatabase.props
– configInfo.maximumRecords
– configInfo.numberOfRecords
– configInfo.resultSetTTL
CQL Query Grammar
Builtin: BasicLuceneQueryTranslator
CqlQueryTranslator
– Query makeQuery(CQLNode cn);
– Term getTerm();
From SRWDatabase.props
– SRWLuceneDatabase.
CqlToLuceneQueryTranslator=
<ClassName>
Persistent Result Sets
Builtin: LuceneQueryResult
XML Database Records
Builtin: BasicLuceneRecordResolver
RecordResolver
– Void init(Properties props);
– Record resolve(Document doc, String
IdFieldName, ExtraDataType extraDataType)
From SRWDatabase.props
– <schemaName>.resolver=<ClassName>
– SRWLuceneDatabase.idFieldName=
<FieldName>
Index Browses
Builtin:
SRWLuceneDatabase.getTerms()
Stylesheets
From SRWDatabase.props
– explainStyleSheet=
/SRW/explainResponse.xsl
– scanStyleSheet=/SRW/scanResponse.xsl
– searchStyleSheet=
/SRW/searchRetrieveResponse.xsl
Making the Magic Happen
Drop the SRWLucene.war into your
<tomcat>/webapps directory
Restart Tomcat
Edit
<tomcat>/webapps/SRWLucene/WEBINF/classes/SRWServer.props
Restart Tomcat
Sample SRWServer.props
db.LuceneDemoDB.class=
ORG.oclc.os.SRW.Lucene.SRWLuceneDa
tabase
db.LuceneDemoDB.home= f:/lucene2.0.0
db.LuceneDemoDB.configuration=
SRWDatabase.props
Sample SRWDatabase.props
databaseInfo.title=Lucene Demo Database
databaseInfo.description=An index of the source code for
Lucene
databaseInfo.contact=Ralph LeVan ([email protected])
qualifier.cql.serverChoice=contents
explainStyleSheet=/SRWLucene/explainResponse.xsl
scanStyleSheet=/SRWLucene/scanResponse.xsl
searchStyleSheet=
/SRWLucene/searchRetrieveResponse.xsl
Resources
http://www.oclc.org/research/software/srw
http://staff.oclc.org/~levan/SRWLuceneSource
.jar
http://staff.oclc.org/~levan/SRWLucene.war
http://staff.oclc.org/~levan/Implementing%20
an%20SRWLuceneDatabase.doc
http://staff.oclc.org/~levan/SRU%20and%20L
ucene.ppt
http://alcme.oclc.org/srw/SRUServerTester.ht
ml