Rupert,

Thanks for this ! This work now for single and multiple words... but with the ValueConstraint, the textConstraint fire an NPE.

I restart the indexing and install fresh solr indexes and felix bundle. Trying to limit bugs from my brain :).

A) With ValueConstraint, this work well :
{
    "offset": "0",
    "limit": "30",
    "constraints": [
        {
          "type": "value",
          "field": "http:\/\/www.w3.org\/2004\/02\/skos\/core#prefLabel",
"dataTypes": ["http:\/\/www.iks-project.eu\/ontology\/rick\/model\/text"],
          "value": "PREPARATION DES AGREGATS",
        }
    ]
}

B) with TextConstraint, this :
{
    "offset": "0",
    "limit": "30",
    "constraints": [
        {
          "type": "text",
          "field": "http:\/\/www.w3.org\/2004\/02\/skos\/core#prefLabel",
          "value": "PREPARATION DES AGREGATS",
        }
    ]
}

Fire this exception :
=========
* root error seems to be :
Caused by: java.lang.NullPointerException
at org.apache.stanbol.entityhub.jersey.parsers.FieldQueryReader.parseTextConstraint(FieldQueryReader.java:229) at org.apache.stanbol.entityhub.jersey.parsers.FieldQueryReader.parseConstraint(FieldQueryReader.java:139)
=========
* all stack trace :

Jun 3, 2011 5:22:50 PM com.sun.jersey.server.impl.application.WebApplicationImpl _handleRequest SEVERE: The RuntimeException could not be mapped to a response, re-throwing to the HTTP container com.sun.jersey.api.container.ContainerException: java.lang.NullPointerException at com.sun.jersey.server.impl.model.method.dispatch.MultipartFormDispatchProvider$MultipartFormParamInjectable.getValue(MultipartFormDispatchProvider.java:179) at com.sun.jersey.server.impl.inject.InjectableValuesProvider.getInjectableValues(InjectableValuesProvider.java:43) at com.sun.jersey.server.impl.model.method.dispatch.FormDispatchProvider$FormParameterProvider.getInjectableValues(FormDispatchProvider.java:107) at com.sun.jersey.server.impl.model.method.dispatch.AbstractResourceMethodDispatchProvider$EntityParamInInvoker.getParams(AbstractResourceMethodDispatchProvider.java:123) at com.sun.jersey.server.impl.model.method.dispatch.AbstractResourceMethodDispatchProvider$ResponseOutInvoker._dispatch(AbstractResourceMethodDispatchProvider.java:170) at com.sun.jersey.server.impl.model.method.dispatch.ResourceJavaMethodDispatcher.dispatch(ResourceJavaMethodDispatcher.java:67) at com.sun.jersey.server.impl.uri.rules.HttpMethodRule.accept(HttpMethodRule.java:265) at com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:133) at com.sun.jersey.server.impl.uri.rules.ResourceClassRule.accept(ResourceClassRule.java:83) at com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:133) at com.sun.jersey.server.impl.uri.rules.RootResourceClassesRule.accept(RootResourceClassesRule.java:71) at com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:996) at com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:947) at com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:938) at com.sun.jersey.spi.container.servlet.WebComponent.service(WebComponent.java:399) at com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:478) at com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:663)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
at org.apache.felix.http.base.internal.handler.ServletHandler.doHandle(ServletHandler.java:96) at org.apache.felix.http.base.internal.handler.ServletHandler.handle(ServletHandler.java:79) at org.apache.felix.http.base.internal.dispatch.ServletPipeline.handle(ServletPipeline.java:42) at org.apache.felix.http.base.internal.dispatch.InvocationFilterChain.doFilter(InvocationFilterChain.java:49) at org.apache.felix.http.base.internal.dispatch.HttpFilterChain.doFilter(HttpFilterChain.java:33) at org.apache.felix.http.base.internal.dispatch.FilterPipeline.dispatch(FilterPipeline.java:48) at org.apache.felix.http.base.internal.dispatch.Dispatcher.dispatch(Dispatcher.java:39) at org.apache.felix.http.base.internal.DispatcherServlet.service(DispatcherServlet.java:67)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
        at 
org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511)
        at 
org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:390)
        at 
org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182)
        at 
org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765)
        at 
org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
        at org.mortbay.jetty.Server.handle(Server.java:326)
        at 
org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542)
at org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:943)
        at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:756)
        at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:212)
        at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)
at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:410) at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582)
Caused by: java.lang.NullPointerException
at org.apache.stanbol.entityhub.jersey.parsers.FieldQueryReader.parseTextConstraint(FieldQueryReader.java:229) at org.apache.stanbol.entityhub.jersey.parsers.FieldQueryReader.parseConstraint(FieldQueryReader.java:139) at org.apache.stanbol.entityhub.jersey.parsers.FieldQueryReader.fromJSON(FieldQueryReader.java:92) at org.apache.stanbol.entityhub.jersey.parsers.FieldQueryReader.readFrom(FieldQueryReader.java:57) at org.apache.stanbol.entityhub.jersey.parsers.FieldQueryReader.readFrom(FieldQueryReader.java:38) at com.sun.jersey.server.impl.model.method.dispatch.MultipartFormDispatchProvider$MultipartFormParamInjectable.getAsMultipartFormData(MultipartFormDispatchProvider.java:228) at com.sun.jersey.server.impl.model.method.dispatch.MultipartFormDispatchProvider$MultipartFormParamInjectable.getValue(MultipartFormDispatchProvider.java:176)
        ... 39 more
Jun 3, 2011 5:23:21 PM com.sun.jersey.server.impl.application.WebApplicationImpl _handleRequest SEVERE: The RuntimeException could not be mapped to a response, re-throwing to the HTTP container com.sun.jersey.api.container.ContainerException: java.lang.IllegalArgumentException: The parsed JSON object MUST contain the required key "constraints" at com.sun.jersey.server.impl.model.method.dispatch.MultipartFormDispatchProvider$MultipartFormParamInjectable.getValue(MultipartFormDispatchProvider.java:179) at com.sun.jersey.server.impl.inject.InjectableValuesProvider.getInjectableValues(InjectableValuesProvider.java:43) at com.sun.jersey.server.impl.model.method.dispatch.FormDispatchProvider$FormParameterProvider.getInjectableValues(FormDispatchProvider.java:107) at com.sun.jersey.server.impl.model.method.dispatch.AbstractResourceMethodDispatchProvider$EntityParamInInvoker.getParams(AbstractResourceMethodDispatchProvider.java:123) at com.sun.jersey.server.impl.model.method.dispatch.AbstractResourceMethodDispatchProvider$ResponseOutInvoker._dispatch(AbstractResourceMethodDispatchProvider.java:170) at com.sun.jersey.server.impl.model.method.dispatch.ResourceJavaMethodDispatcher.dispatch(ResourceJavaMethodDispatcher.java:67) at com.sun.jersey.server.impl.uri.rules.HttpMethodRule.accept(HttpMethodRule.java:265) at com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:133) at com.sun.jersey.server.impl.uri.rules.ResourceClassRule.accept(ResourceClassRule.java:83) at com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:133) at com.sun.jersey.server.impl.uri.rules.RootResourceClassesRule.accept(RootResourceClassesRule.java:71) at com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:996) at com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:947) at com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:938) at com.sun.jersey.spi.container.servlet.WebComponent.service(WebComponent.java:399) at com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:478) at com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:663)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
at org.apache.felix.http.base.internal.handler.ServletHandler.doHandle(ServletHandler.java:96) at org.apache.felix.http.base.internal.handler.ServletHandler.handle(ServletHandler.java:79) at org.apache.felix.http.base.internal.dispatch.ServletPipeline.handle(ServletPipeline.java:42) at org.apache.felix.http.base.internal.dispatch.InvocationFilterChain.doFilter(InvocationFilterChain.java:49) at org.apache.felix.http.base.internal.dispatch.HttpFilterChain.doFilter(HttpFilterChain.java:33) at org.apache.felix.http.base.internal.dispatch.FilterPipeline.dispatch(FilterPipeline.java:48) at org.apache.felix.http.base.internal.dispatch.Dispatcher.dispatch(Dispatcher.java:39) at org.apache.felix.http.base.internal.DispatcherServlet.service(DispatcherServlet.java:67)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
        at 
org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511)
        at 
org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:390)
        at 
org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182)
        at 
org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765)
        at 
org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
        at org.mortbay.jetty.Server.handle(Server.java:326)
        at 
org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542)
at org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:943)
        at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:756)
        at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:212)
        at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)
at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:410) at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582) Caused by: java.lang.IllegalArgumentException: The parsed JSON object MUST contain the required key "constraints" at org.apache.stanbol.entityhub.jersey.parsers.FieldQueryReader.fromJSON(FieldQueryReader.java:76) at org.apache.stanbol.entityhub.jersey.parsers.FieldQueryReader.readFrom(FieldQueryReader.java:57) at org.apache.stanbol.entityhub.jersey.parsers.FieldQueryReader.readFrom(FieldQueryReader.java:38) at com.sun.jersey.server.impl.model.method.dispatch.MultipartFormDispatchProvider$MultipartFormParamInjectable.getAsMultipartFormData(MultipartFormDispatchProvider.java:228) at com.sun.jersey.server.impl.model.method.dispatch.MultipartFormDispatchProvider$MultipartFormParamInjectable.getValue(MultipartFormDispatchProvider.java:176)
        ... 39 more
Jun 3, 2011 5:31:16 PM com.sun.jersey.server.impl.application.WebApplicationImpl _handleRequest SEVERE: The RuntimeException could not be mapped to a response, re-throwing to the HTTP container com.sun.jersey.api.container.ContainerException: java.lang.NullPointerException at com.sun.jersey.server.impl.model.method.dispatch.MultipartFormDispatchProvider$MultipartFormParamInjectable.getValue(MultipartFormDispatchProvider.java:179) at com.sun.jersey.server.impl.inject.InjectableValuesProvider.getInjectableValues(InjectableValuesProvider.java:43) at com.sun.jersey.server.impl.model.method.dispatch.FormDispatchProvider$FormParameterProvider.getInjectableValues(FormDispatchProvider.java:107) at com.sun.jersey.server.impl.model.method.dispatch.AbstractResourceMethodDispatchProvider$EntityParamInInvoker.getParams(AbstractResourceMethodDispatchProvider.java:123) at com.sun.jersey.server.impl.model.method.dispatch.AbstractResourceMethodDispatchProvider$ResponseOutInvoker._dispatch(AbstractResourceMethodDispatchProvider.java:170) at com.sun.jersey.server.impl.model.method.dispatch.ResourceJavaMethodDispatcher.dispatch(ResourceJavaMethodDispatcher.java:67) at com.sun.jersey.server.impl.uri.rules.HttpMethodRule.accept(HttpMethodRule.java:265) at com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:133) at com.sun.jersey.server.impl.uri.rules.ResourceClassRule.accept(ResourceClassRule.java:83) at com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:133) at com.sun.jersey.server.impl.uri.rules.RootResourceClassesRule.accept(RootResourceClassesRule.java:71) at com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:996) at com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:947) at com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:938) at com.sun.jersey.spi.container.servlet.WebComponent.service(WebComponent.java:399) at com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:478) at com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:663)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
at org.apache.felix.http.base.internal.handler.ServletHandler.doHandle(ServletHandler.java:96) at org.apache.felix.http.base.internal.handler.ServletHandler.handle(ServletHandler.java:79) at org.apache.felix.http.base.internal.dispatch.ServletPipeline.handle(ServletPipeline.java:42) at org.apache.felix.http.base.internal.dispatch.InvocationFilterChain.doFilter(InvocationFilterChain.java:49) at org.apache.felix.http.base.internal.dispatch.HttpFilterChain.doFilter(HttpFilterChain.java:33) at org.apache.felix.http.base.internal.dispatch.FilterPipeline.dispatch(FilterPipeline.java:48) at org.apache.felix.http.base.internal.dispatch.Dispatcher.dispatch(Dispatcher.java:39) at org.apache.felix.http.base.internal.DispatcherServlet.service(DispatcherServlet.java:67)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
        at 
org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511)
        at 
org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:390)
        at 
org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182)
        at 
org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765)
        at 
org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
        at org.mortbay.jetty.Server.handle(Server.java:326)
        at 
org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542)
at org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:943)
        at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:756)
        at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:212)
        at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)
at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:410) at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582)
Caused by: java.lang.NullPointerException
at org.apache.stanbol.entityhub.jersey.parsers.FieldQueryReader.parseTextConstraint(FieldQueryReader.java:229) at org.apache.stanbol.entityhub.jersey.parsers.FieldQueryReader.parseConstraint(FieldQueryReader.java:139) at org.apache.stanbol.entityhub.jersey.parsers.FieldQueryReader.fromJSON(FieldQueryReader.java:92) at org.apache.stanbol.entityhub.jersey.parsers.FieldQueryReader.readFrom(FieldQueryReader.java:57) at org.apache.stanbol.entityhub.jersey.parsers.FieldQueryReader.readFrom(FieldQueryReader.java:38) at com.sun.jersey.server.impl.model.method.dispatch.MultipartFormDispatchProvider$MultipartFormParamInjectable.getAsMultipartFormData(MultipartFormDispatchProvider.java:228) at com.sun.jersey.server.impl.model.method.dispatch.MultipartFormDispatchProvider$MultipartFormParamInjectable.getValue(MultipartFormDispatchProvider.java:176)
        ... 39 more
Jun 3, 2011 5:37:55 PM com.sun.jersey.server.impl.application.WebApplicationImpl _handleRequest SEVERE: The RuntimeException could not be mapped to a response, re-throwing to the HTTP container com.sun.jersey.api.container.ContainerException: java.lang.NullPointerException at com.sun.jersey.server.impl.model.method.dispatch.MultipartFormDispatchProvider$MultipartFormParamInjectable.getValue(MultipartFormDispatchProvider.java:179) at com.sun.jersey.server.impl.inject.InjectableValuesProvider.getInjectableValues(InjectableValuesProvider.java:43) at com.sun.jersey.server.impl.model.method.dispatch.FormDispatchProvider$FormParameterProvider.getInjectableValues(FormDispatchProvider.java:107) at com.sun.jersey.server.impl.model.method.dispatch.AbstractResourceMethodDispatchProvider$EntityParamInInvoker.getParams(AbstractResourceMethodDispatchProvider.java:123) at com.sun.jersey.server.impl.model.method.dispatch.AbstractResourceMethodDispatchProvider$ResponseOutInvoker._dispatch(AbstractResourceMethodDispatchProvider.java:170) at com.sun.jersey.server.impl.model.method.dispatch.ResourceJavaMethodDispatcher.dispatch(ResourceJavaMethodDispatcher.java:67) at com.sun.jersey.server.impl.uri.rules.HttpMethodRule.accept(HttpMethodRule.java:265) at com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:133) at com.sun.jersey.server.impl.uri.rules.ResourceClassRule.accept(ResourceClassRule.java:83) at com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:133) at com.sun.jersey.server.impl.uri.rules.RootResourceClassesRule.accept(RootResourceClassesRule.java:71) at com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:996) at com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:947) at com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:938) at com.sun.jersey.spi.container.servlet.WebComponent.service(WebComponent.java:399) at com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:478) at com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:663)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
at org.apache.felix.http.base.internal.handler.ServletHandler.doHandle(ServletHandler.java:96) at org.apache.felix.http.base.internal.handler.ServletHandler.handle(ServletHandler.java:79) at org.apache.felix.http.base.internal.dispatch.ServletPipeline.handle(ServletPipeline.java:42) at org.apache.felix.http.base.internal.dispatch.InvocationFilterChain.doFilter(InvocationFilterChain.java:49) at org.apache.felix.http.base.internal.dispatch.HttpFilterChain.doFilter(HttpFilterChain.java:33) at org.apache.felix.http.base.internal.dispatch.FilterPipeline.dispatch(FilterPipeline.java:48) at org.apache.felix.http.base.internal.dispatch.Dispatcher.dispatch(Dispatcher.java:39) at org.apache.felix.http.base.internal.DispatcherServlet.service(DispatcherServlet.java:67)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
        at 
org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511)
        at 
org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:390)
        at 
org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182)
        at 
org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765)
        at 
org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
        at org.mortbay.jetty.Server.handle(Server.java:326)
        at 
org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542)
at org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:943)
        at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:756)
        at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:212)
        at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)
at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:410) at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582)
Caused by: java.lang.NullPointerException
at org.apache.stanbol.entityhub.jersey.parsers.FieldQueryReader.parseTextConstraint(FieldQueryReader.java:229) at org.apache.stanbol.entityhub.jersey.parsers.FieldQueryReader.parseConstraint(FieldQueryReader.java:139) at org.apache.stanbol.entityhub.jersey.parsers.FieldQueryReader.fromJSON(FieldQueryReader.java:92) at org.apache.stanbol.entityhub.jersey.parsers.FieldQueryReader.readFrom(FieldQueryReader.java:57) at org.apache.stanbol.entityhub.jersey.parsers.FieldQueryReader.readFrom(FieldQueryReader.java:38) at com.sun.jersey.server.impl.model.method.dispatch.MultipartFormDispatchProvider$MultipartFormParamInjectable.getAsMultipartFormData(MultipartFormDispatchProvider.java:228) at com.sun.jersey.server.impl.model.method.dispatch.MultipartFormDispatchProvider$MultipartFormParamInjectable.getValue(MultipartFormDispatchProvider.java:176)
        ... 39 more



On 06/03/2011 03:55 PM, Rupert Westenthaler wrote:
Hi Florent

First of all: as I expected it was a Bug in the FieldQuery
implementation of the SolrYard. The Bug is fixed in the meantime [1],
however the Bug itself was not the reason why you where getting
unexpected results. That there where any results for the second query
("South America") was a result of the Bug.

The reason why you do not get any results is because you search for
"xsd:string" values, but "skos:prefLabel" are mapped to
"entityhub:text". The entityhub distinguishes between natural language
text and "string" values. Strings would be typically used for ids
(e.g. ISBN numbers). also "skos:notation" would be a good example. The
Solr yard does not use any tokenizer for String values.

Your query used a ValueConstraint to search for the skos:prefLabel:
    {
        "type": "value",
        "field": "http:\/\/www.w3.org\/2004\/02\/skos\/core#prefLabel",
        "value": "Africa",
    }
if no data type is defined for such constraint, than the data type is
detected based on the java type of the value. What would be

* String for "value": "Africa"
* Integer for "value": 123
* Float for "value": 1.23

You can also explicitly parse an dataType by using "dataTypes"
     {
         "type": "value",
         "field": "http:\/\/www.w3.org\/2004\/02\/skos\/core#prefLabel",
         "dataTypes":
["http:\/\/www.iks-project.eu\/ontology\/rick\/model\/text"],
         "value": "South America",
     }

"http://www.iks-project.eu/ontology/rick/model/text"; is the data type
used for natural text values.

However the preferred way to query for Natural Text values is to use a
TextConstraint instead of a ValueConstraint.
The TextConstraint equivalent to the above ValueConstraint is:

     {
         "type": "text",
         "text": "South Africa",
         "field": "http:\/\/www.w3.org\/2004\/02\/skos\/core#prefLabel",
     }

However text constraints also allow to define the languages to search
as well as the use of Wildcards
e.g.

     {
         "selected": [
             "http:\/\/www.w3.org\/2004\/02\/skos\/core#prefLabel",
             "http:\/\/www.w3.org\/1999\/02\/22-rdf-syntax-ns#type"],
         "offset": "0",
         "limit": "30",
         "constraints": [
         {
             "type": "text",
             "languages": ["en-GB"],
             "patternType": "wildcard",
             "text": "Photo*",
             "field": "http:\/\/www.w3.org\/2004\/02\/skos\/core#prefLabel",
         }
     ]
}

A documentation of the FieldQuery syntax is provided at the end of the
Entityhub README.TXT [2]

best
Rupert Westenthaler

[1] http://svn.apache.org/viewvc?rev=1131027&view=rev
[2] http://svn.apache.org/repos/asf/incubator/stanbol/trunk/entityhub/README.TXT


1) When indexing a skos file, only terms with multi-words are indexed, and not 
term with one word. I observe this first on my particular thesaurus then also 
in the iptc one. I try this request
$ curl -X POST -F "[email protected]" 
http://localhost:8080/entityhub/site/iptc/query
with queries :

1.A) @fieldQuery.json =
{
    "offset": "0",
    "limit": "30",
    "constraints": [
        {
          "type": "value",
          "field": "http:\/\/www.w3.org\/2004\/02\/skos\/core#prefLabel",
          "value": "Africa",
        }
    ]
}

==>  output no results

1.B) @fieldQuery.json =
{
    "offset": "0",
    "limit": "30",
    "constraints": [
        {
          "type": "value",
          "field": "http:\/\/www.w3.org\/2004\/02\/skos\/core#prefLabel",
          "value": "South America",
        }
    ]
}

Reply via email to