Solr-engine/2.1.1

From WebLab Wiki
< Solr-engine
Revision as of 08:12, 20 March 2012 by Gdupont (talk | contribs) (UsageContext effects)
Jump to navigationJump to search
Indexing and search service based on remote Solr
Details
Service Interfaces Indexer, Searcher, Analyser
Exchange model: WebLab 1.2.2
Versions: <ListSubPages />
Licence LGPL 2.1
Supported OS Windows/Linux/MacOS
Integrated COTS SolR
Binary solr-engine-2.1.1.war
Sources solr-engine-2.1.1-sources.jar
Javadoc solr-engine-2.1.1-javadoc.jar
SVN solr-engine
Maven Artifact

<groupId>org.ow2.weblab.webservices</groupId>

<artifactId>solr-engine</artifactId>

<version>2.1.1</version>
Release Note


It's a search engine based on on Apache Solr and it allows (1) to index text based content, (2) to enable text search with possibly advanced set f queries and (3) provide search support through multiple analyser services. The list of services available is:

  • <solr-engineURL>/indexer : standard text indexing service ;
  • <solr-engineURL>/searcher : search service accepting StringQuery, SimilarityQuery and ComposeQuery ;
  • <solr-engineURL>/highlighter : analyser service applied on ResultSet and which allow to create snippet and highlight relevant text given a text query ;
  • <solr-engineURL>/resultSetMetaEnricher : analyser service applied on ResultSet and which add metadata on the item linked to the result hits ;
  • <solr-engineURL>/facetSuggestion : analyser service applied on ResultSet or StringQuery and which provide facets as query suggested ;
  • <solr-engineURL>/dataoperator : technical interface that allows to get reports and manage dataset (ie indexes) stored on service side.


Configuration

One single configuration file - <solr-engine-home>/WEB-INF/cxf-servlet.xml - enable to configure all services.

UsageContext effects

By default, UsageContext are mapped to a specific index core as defined in Solr. It means that a document indexed with a specific UsageContext will only be found while searching using the same UsageContext. This implementation corresponds to a simple data separation mechanism. Note that since the UsageContext is optionnal, there is a "default core" that is used when no UsageContext are passed as argument (both on index and search).

Finally, there is a "noCore" mode for each service. Setting this property to "true" will make the service only use the "default core" and thus ignoring any UsageContext that could be passed as argument.

Examples of SOAP Input/Output

TODO: This part has to be completed.

Known Limitations

All services need to connect to a standard Solr server that should be started in background. This component has a strong dependency to the index configuration (ie definition of fields) and server configuration (ie query-handler) of the remote solr server. A default solr-home with all necessary files is present in the source of the component:

src/main/resources/solr/

This should be used as solr-home to meet basic needs and provide a good start for fine tuning.

Dependencies

List off all dependencies of this service:

+- org.ow2.weblab.core.helpers:rdf-helper-jena:jar:1.3.2:compile
|  \- com.hp.hpl.jena:jena:jar:2.6.4:compile
|     +- com.hp.hpl.jena:iri:jar:0.8:compile
|     +- com.ibm.icu:icu4j:jar:3.4.4:compile
|     \- xerces:xercesImpl:jar:2.7.1:compile
+- org.ow2.weblab.core.helpers:rdf-helper-jena-selection:jar:1.5.3:compile
|  \- joda-time:joda-time:jar:1.6.2:compile
+- org.ow2.weblab.services:dataoperator:jar:1.2.2:compile
+- org.ow2.weblab.core.helpers:samples:jar:1.0:test
+- org.apache.solr:solr-solrj:jar:3.3.0:compile
|  +- org.apache.lucene:lucene-core:jar:3.3.0:compile
|  +- commons-httpclient:commons-httpclient:jar:3.1:compile
|  |  \- commons-codec:commons-codec:jar:1.5:compile (version managed from 1.2)
|  +- commons-io:commons-io:jar:2.0.1:compile (version managed from 1.4)
|  +- org.apache.geronimo.specs:geronimo-stax-api_1.0_spec:jar:1.0.1:compile
|  +- org.apache.zookeeper:zookeeper:jar:3.3.1:compile
|  |  +- log4j:log4j:jar:1.2.16:compile
|  |  |  \- javax.mail:mail:jar:1.4.1:compile (version managed from 1.4)
|  |  |     \- javax.activation:activation:jar:1.1:compile
|  |  \- jline:jline:jar:0.9.94:compile
|  +- org.codehaus.woodstox:wstx-asl:jar:3.2.7:compile
|  |  \- stax:stax-api:jar:1.0.1:compile
|  \- org.slf4j:slf4j-api:jar:1.6.1:compile
+- org.apache.solr:solr-core:jar:3.3.0:test
|  +- org.apache.solr:solr-noggit:jar:3.3.0:test
|  +- org.apache.lucene:lucene-analyzers:jar:3.3.0:test
|  +- org.apache.lucene:lucene-highlighter:jar:3.3.0:test
|  +- org.apache.lucene:lucene-memory:jar:3.3.0:test
|  +- org.apache.lucene:lucene-misc:jar:3.3.0:test
|  +- org.apache.lucene:lucene-queries:jar:3.3.0:test
|  |  \- jakarta-regexp:jakarta-regexp:jar:1.4:test
|  +- org.apache.lucene:lucene-spatial:jar:3.3.0:test
|  +- org.apache.lucene:lucene-spellchecker:jar:3.3.0:test
|  +- org.apache.lucene:lucene-grouping:jar:3.3.0:test
|  +- org.apache.solr:solr-commons-csv:jar:3.3.0:test
|  +- commons-fileupload:commons-fileupload:jar:1.2.2:test (version managed from 1.2.1)
|  +- org.apache.velocity:velocity:jar:1.6.4:test
|  |  +- commons-collections:commons-collections:jar:3.2.1:test
|  |  \- oro:oro:jar:2.0.8:test
|  +- org.apache.velocity:velocity-tools:jar:2.0:test
|  |  +- commons-beanutils:commons-beanutils:jar:1.7.0:test
|  |  +- commons-digester:commons-digester:jar:1.8:test
|  |  +- commons-chain:commons-chain:jar:1.1:test
|  |  +- commons-validator:commons-validator:jar:1.3.1:test
|  |  +- dom4j:dom4j:jar:1.1:test
|  |  +- sslext:sslext:jar:1.2-0:test
|  |  +- org.apache.struts:struts-core:jar:1.3.8:test
|  |  |  \- antlr:antlr:jar:2.7.2:test
|  |  +- org.apache.struts:struts-taglib:jar:1.3.8:test
|  |  \- org.apache.struts:struts-tiles:jar:1.3.8:test
|  \- org.slf4j:slf4j-jdk14:jar:1.6.1:test
+- org.mortbay.jetty:jetty:jar:6.1.26:test
|  +- org.mortbay.jetty:jetty-util:jar:6.1.26:test
|  \- org.mortbay.jetty:servlet-api:jar:2.5-20081211:test
+- commons-lang:commons-lang:jar:2.4:compile
+- org.slf4j:slf4j-log4j12:jar:1.6.1:test (scope not updated to runtime)
+- org.ow2.weblab.core:model:jar:1.2.2:compile
+- org.ow2.weblab.core:extended:jar:1.2.2:compile
+- org.ow2.weblab.core:annotator:jar:1.2.4:compile
+- org.apache.cxf:cxf-rt-frontend-jaxws:jar:2.4.0:compile
|  +- xml-resolver:xml-resolver:jar:1.2:compile
|  +- asm:asm:jar:3.3:compile
|  +- org.apache.cxf:cxf-api:jar:2.4.0:compile
|  |  +- org.apache.cxf:cxf-common-utilities:jar:2.4.0:compile
|  |  +- org.apache.ws.xmlschema:xmlschema-core:jar:2.0:compile
|  |  \- org.apache.neethi:neethi:jar:3.0.0:compile
|  |     +- wsdl4j:wsdl4j:jar:1.6.2:compile
|  |     \- org.codehaus.woodstox:woodstox-core-asl:jar:4.1.1:compile
|  |        \- org.codehaus.woodstox:stax2-api:jar:3.0.2:compile
|  +- org.apache.cxf:cxf-rt-core:jar:2.4.0:compile
|  |  +- com.sun.xml.bind:jaxb-impl:jar:2.1.13:compile
|  |  \- org.apache.geronimo.specs:geronimo-javamail_1.4_spec:jar:1.7.1:compile
|  +- org.apache.cxf:cxf-rt-bindings-soap:jar:2.4.0:compile
|  |  +- org.apache.cxf:cxf-tools-common:jar:2.4.0:compile
|  |  \- org.apache.cxf:cxf-rt-databinding-jaxb:jar:2.4.0:compile
|  +- org.apache.cxf:cxf-rt-bindings-xml:jar:2.4.0:compile
|  +- org.apache.cxf:cxf-rt-frontend-simple:jar:2.4.0:compile
|  \- org.apache.cxf:cxf-rt-ws-addr:jar:2.4.0:compile
+- org.apache.cxf:cxf-rt-transports-http:jar:2.4.0:compile
|  +- org.apache.cxf:cxf-rt-transports-common:jar:2.4.0:compile
|  \- org.springframework:spring-web:jar:3.0.5.RELEASE:compile
|     +- aopalliance:aopalliance:jar:1.0:compile
|     +- org.springframework:spring-beans:jar:3.0.5.RELEASE:compile
|     +- org.springframework:spring-context:jar:3.0.5.RELEASE:compile
|     |  +- org.springframework:spring-aop:jar:3.0.5.RELEASE:compile
|     |  +- org.springframework:spring-expression:jar:3.0.5.RELEASE:compile
|     |  \- org.springframework:spring-asm:jar:3.0.5.RELEASE:compile
|     \- org.springframework:spring-core:jar:3.0.5.RELEASE:compile
+- xalan:xalan:jar:2.7.1:compile
|  \- xalan:serializer:jar:2.7.1:compile
|     \- xml-apis:xml-apis:jar:1.3.04:compile
+- commons-logging:commons-logging:jar:1.1.1:compile
+- junit:junit:jar:4.8.2:test (scope not updated to compile)
\- javax.servlet:servlet-api:jar:2.4:provided