Hi Andy,
after 2 attempts to insert the new SKOS variable, I got the following error:
org.apache.jena.query.text.TextIndexException:
org.apache.solr.client.solrj.SolrServerException: IOException occured
when talking to server at: http://localhost:8983/solr/GND100316_550
...............................................................................................................................
[2016-05-02 19:23:40] Fuseki INFO [4] 500
org.apache.solr.client.solrj.SolrServerException: IOException occured
when talking to server at: http://localhost:8983/solr/GND100316_550
(30,147.934 s)
This occured after more than 8 hours, but it failed before the completion.
No related Solr error was printed out in the logs in that moment, but
when I refreshed the Solr page http://localhost:8983/solr/#/~cores, then
I got:
30852656 INFO (qtp1013423070-18) [ ] o.a.s.s.HttpSolrCall [admin]
webapp=null path=/admin/info/system params={wt=json&_=1462210386319}
status=0 QTime=1758
30854518 ERROR (qtp1013423070-20) [ ] o.a.s.h.RequestHandlerBase
org.apache.solr.common.SolrException: Error handling 'status' action
...............................................................................................................................
Caused by: java.nio.file.NoSuchFileException:
/opt/solr-5.5.0/server/solr/GND100316_550/data/index/segments_1
Indeed, there is no *segments_1* file in ../data/index/ but a different one:
# ls -lrt /opt/solr-5.5.0/server/solr/GND100316_550/data/index/segments*
-rw-r--r-- 1 root root 937 May 2 17:42
/opt/solr-5.5.0/server/solr/GND100316_550/data/index/segments_10r
I could provide the backtrace if needed. Could you help me to understand
the root cause please?
Thank you
Sorin
Am 29.04.2016 um 12:20 schrieb Andy Seaborne:
The use of rdf:type seems to mix being a displayable label and a class
type.
Maybe adding skos:prefLabel to keep the display label is worth doing.
You can extract the fragment from a URI with:
STRAFTER(STR(<http://example/foo#bar>), "#")'
(untested):
INSERT { ?s skos:prefLabel ?label }
WHERE {
?s a ?T .
BIND ( ?label as STRAFTER(STR(?T), "#")
}
On 29/04/16 09:25, Sorin Gheorghiu wrote:
Hi Osma,
I do need the type in the text index to get faster results than using
sparql queries.
I found an analyzer which could replace the URI with the string type,
but I cannot use it as long as the non-literal are skiped.
<fieldType name="text_type_gnd" class="solr.TextField" >
<analyzer>
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.PatternReplaceFilterFactory" pattern="
http://d-nb.info/standards/elementset/gnd#" replacement=""
replace="all" />
</analyzer>
</fieldType>
I am still looking for a workaround for this case.
Thanks,
Sorin
Am 29.04.2016 um 08:43 schrieb Osma Suominen:
Hi Sorin!
Why do you need the type in the text index? The text index is designed
to store literals. It does not know how to handle URIs at all.
Generally what you would do to combine text search with a restriction
on rdf:type is to use separate query patterns, e.g.
{
?s text:query 'nuclear' .
?s a gndo:SeriesOfConferenceOrEvent .
}
-Osma
On 28/04/16 18:30, Sorin Gheorghiu wrote:
Hi Andy,
I need just the type of the entry, from the example just the last part
'SeriesOfConferenceOrEvent'.
If possible I would set an analyser which would trim the first
part, but
I don't know how.
Thanks
Sorin
Am 28.04.2016 um 17:25 schrieb Andy Seaborne:
Hi Sorin,
I'm curious as to why you are indexing a URI and what you see the
benefit of that. You might at least want to set the analyser
carefully.
Andy
PS I fixed the cause of the "UnsupportedOperationException" but only
in the sense that it now issues a warning and skips the non-literal.
The test for being a literal or not was there ... but after calling
getLiteral.
On 28/04/16 15:47, Sorin Gheorghiu wrote:
Hello,
Jena text index returned the following error:
# java -cp /opt/apache-jena-fuseki-2.3.1/fuseki-server.jar
jena.textindexer --desc=/etc/default/fuseki/jena-text-config.ttl
java.lang.UnsupportedOperationException:
http://d-nb.info/standards/elementset/gnd#SeriesOfConferenceOrEvent
is
not a literal node
at org.apache.jena.graph.Node.getLiteral(Node.java:100)
at
org.apache.jena.query.text.TextQueryFuncs.entityFromQuad(TextQueryFuncs.java:80)
at
org.apache.jena.query.text.TextQueryFuncs.entityFromQuad(TextQueryFuncs.java:67)
at jena.textindexer.exec(textindexer.java:122)
at jena.cmd.CmdMain.mainMethod(CmdMain.java:93)
at jena.cmd.CmdMain.mainRun(CmdMain.java:58)
at jena.cmd.CmdMain.mainRun(CmdMain.java:45)
at jena.textindexer.main(textindexer.java:51)
when attempted to index entries like:
@prefix gndo: <http://d-nb.info/standards/elementset/gnd#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
<http://d-nb.info/gnd/1-2> gndo:gndIdentifier "1-2" ;
gndo:variantNameForTheConferenceOrEvent "Conferentie van
Niet-Kernwapenstaten" , "Conference on Non-Nuclear Weapon States" ;
gndo:preferredNameForTheConferenceOrEvent "Conference of
Non-Nuclear Weapon States" ;
a gndo:SeriesOfConferenceOrEvent .
Here is the EntityMap assembler setup:
<#entMap> a text:EntityMap ;
text:entityField "gndUri" ;
text:defaultField "prefName" ; ## Must be defined in the
text:map
text:map (
[ text:field "prefName";
text:predicate gndo:preferredNameForTheSubjectHeading
]
[ text:field "type";
text:predicate rdf:type
]
...
'type' contains an URL, but a literal node is expected instead.
There is no difference if 'type' is defined as 'text' or 'string' in
Solr schema.xml.
How is possible to fix it?
Thank you in advance,
Sorin
--
Sorin Gheorghiu Tel: +49 7531 88-3198
Universität Konstanz Raum: B703
78464 Konstanz sorin.gheorg...@uni-konstanz.de
- KIM: Abteilung Contentdienste -