Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
D
DARIAH-DE OAI-PMH Services
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Code
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Package registry
Container Registry
Model registry
Operate
Environments
Terraform modules
Monitor
Incidents
Service Desk
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
DARIAH-DE
DARIAH-DE OAI-PMH Services
Commits
a7f88d77
Commit
a7f88d77
authored
6 years ago
by
Stefan E. Funk
Browse files
Options
Downloads
Patches
Plain Diff
added logging to setdeliverer.
parent
a31b0986
No related branches found
No related tags found
No related merge requests found
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
oaipmh-core/src/main/java/info/textgrid/middleware/SetDeliverer.java
+244
-206
244 additions, 206 deletions
.../src/main/java/info/textgrid/middleware/SetDeliverer.java
with
244 additions
and
206 deletions
oaipmh-core/src/main/java/info/textgrid/middleware/SetDeliverer.java
+
244
−
206
View file @
a7f88d77
...
...
@@ -4,8 +4,6 @@ import info.textgrid.middleware.oaipmh.ListSetsType;
import
info.textgrid.middleware.oaipmh.SetType
;
import
info.textgrid.namespaces.middleware.tgcrud.common.TextGridMimetypes
;
import
info.textgrid.utils.sesameclient.SesameClient
;
import
java.io.UnsupportedEncodingException
;
import
java.net.URLDecoder
;
import
java.util.Hashtable
;
...
...
@@ -13,7 +11,6 @@ import java.util.Iterator;
import
java.util.LinkedHashSet
;
import
java.util.Map
;
import
java.util.Set
;
import
org.elasticsearch.action.get.GetRequestBuilder
;
import
org.elasticsearch.action.get.GetResponse
;
import
org.elasticsearch.action.search.SearchRequestBuilder
;
...
...
@@ -22,209 +19,250 @@ import org.elasticsearch.index.query.QueryBuilder;
import
org.elasticsearch.index.query.QueryBuilders
;
import
org.elasticsearch.search.SearchHit
;
/**
*
*/
public
class
SetDeliverer
{
private
OAI_ESClient
oaiEsClient
;
private
SesameClient
sparqlClient
;
public
SetDeliverer
(
OAI_ESClient
oaiEsClient
,
boolean
textgrid
,
boolean
dariah
)
{
this
.
oaiEsClient
=
oaiEsClient
;
this
.
textgrid
=
textgrid
;
this
.
dariah
=
dariah
;
// System.out.println(dariah);
}
private
Set
<
String
>
identifier
=
new
LinkedHashSet
<
String
>();
private
String
formatField
;
private
String
formatToFilter
;
private
String
identifierField
;
private
String
repositoryObjectURIPrefix
;
private
String
specField
;
private
String
specFieldPrefix
;
private
Set
<
String
>
project
=
new
LinkedHashSet
<
String
>();
private
static
Map
<
String
,
String
>
setSet
=
new
Hashtable
<
String
,
String
>();
private
boolean
textgrid
;
private
boolean
dariah
;
public
ListSetsType
setListBuilder
()
{
//System.out.println("HALLO !!!!!!!!!!!!!!!!!!!");
// System.out.println("DARIAH: " + dariah);
// System.out.println("TEXTGRID: " + textgrid);
ListSetsType
setList
=
new
ListSetsType
();
QueryBuilder
aggQuery
;
//System.out.println("TEXTGRID: " + textgrid);
if
(
textgrid
)
{
aggQuery
=
QueryBuilders
.
matchPhraseQuery
(
"format"
,
TextGridMimetypes
.
DARIAH_COLLECTION
);
}
else
{
// System.out.println("JUHU");
aggQuery
=
QueryBuilders
.
matchPhraseQuery
(
"descriptiveMetadata.dc:format"
,
TextGridMimetypes
.
DARIAH_COLLECTION
);
}
// System.out.println(aggQuery);
SearchRequestBuilder
request
=
OAI_ESClient
.
getOaiESClient
()
.
prepareSearch
(
OAI_ESClient
.
getEsIndex
())
.
setTypes
(
OAI_ESClient
.
getEsType
())
.
setQuery
(
aggQuery
)
.
addField
(
formatField
)
.
addField
(
identifierField
)
.
addField
(
"project.value"
)
.
addField
(
"project.id"
)
.
setSize
(
100000
);
//System.out.println("QUERY: " + request);
SearchResponse
getRecordListItems
=
request
.
execute
().
actionGet
();
//System.out.println(getRecordListItems);
for
(
SearchHit
hit
:
getRecordListItems
.
getHits
().
getHits
())
{
//System.out.println("HALLO HALLO");
//if(hit.getFields().get(formatField) != null && hit.getFields().get(formatField).value().equals(formatToFilter)) {
//System.out.println("IDENTIFIER FIELD: " + identifierField);
// System.out.println("DARIAH SET");
if
(
dariah
==
true
&&
hit
.
getFields
().
get
(
identifierField
).
values
().
get
(
0
).
toString
().
startsWith
(
"hdl:"
)){
// System.out.println("JUHU");
this
.
identifier
.
add
(
hit
.
getFields
().
get
(
identifierField
).
values
().
get
(
0
).
toString
());
}
if
(
textgrid
==
true
){
//System.out.println("HALLO TEXTGRIT");
String
projectName
=
hit
.
getFields
().
get
(
"project.value"
).
values
().
get
(
0
).
toString
();
String
projectID
=
hit
.
getFields
().
get
(
"project.id"
).
values
().
get
(
0
).
toString
();
String
projectSetSpec
=
projectName
.
concat
(
":"
).
concat
(
projectID
);
this
.
setSet
.
put
(
projectID
,
projectName
);
}
}
//}
if
(
textgrid
==
true
){
// System.out.println("HALLO GRIT");
Iterator
it
=
setSet
.
entrySet
().
iterator
();
while
(
it
.
hasNext
()){
Map
.
Entry
pair
=
(
Map
.
Entry
)
it
.
next
();
SetType
set
=
new
SetType
();
set
.
setSetName
(
pair
.
getValue
().
toString
());
set
.
setSetSpec
(
"project:"
+
pair
.
getKey
().
toString
());
setList
.
getSet
().
add
(
set
);
}
}
if
(
dariah
==
true
){
for
(
String
identifierSetSpec
:
this
.
identifier
)
{
String
id
=
identifierSetSpec
;
try
{
id
=
URLDecoder
.
decode
(
id
,
"UTF-8"
);
}
catch
(
UnsupportedEncodingException
e
)
{
e
.
printStackTrace
();
}
id
=
identifierSetSpec
.
substring
(
repositoryObjectURIPrefix
.
length
());
GetRequestBuilder
collectionNameById
=
OAI_ESClient
.
getOaiESClient
().
prepareGet
()
.
setIndex
(
OAI_ESClient
.
getEsIndex
())
.
setType
(
OAI_ESClient
.
getEsType
())
.
setFields
(
specField
)
.
setId
(
id
);
GetResponse
setSpec
=
collectionNameById
.
execute
().
actionGet
();
String
setName
=
""
;
if
(
setSpec
!=
null
&&
setSpec
.
isExists
()){
if
(
setSpec
.
getField
(
specField
)
!=
null
)
{
setName
=
setSpec
.
getField
(
specField
).
getValue
().
toString
();
}
}
SetType
set
=
new
SetType
();
set
.
setSetName
(
setName
);
set
.
setSetSpec
(
specFieldPrefix
+
id
);
setList
.
getSet
().
add
(
set
);
}
}
identifier
.
clear
();
return
setList
;
}
public
String
getFormatField
()
{
return
formatField
;
}
public
void
setFormatField
(
String
formatField
)
{
this
.
formatField
=
formatField
;
}
public
String
getFormatToFilter
()
{
return
formatToFilter
;
}
public
void
setFormatToFilter
(
String
formatToFilter
)
{
this
.
formatToFilter
=
formatToFilter
;
}
public
String
getIdentifierField
()
{
return
identifierField
;
}
public
void
setIdentifierField
(
String
identifierField
)
{
this
.
identifierField
=
identifierField
;
}
public
String
getRepositoryObjectURIPrefix
()
{
return
repositoryObjectURIPrefix
;
}
public
void
setRepositoryObjectURIPrefix
(
String
repositoryObjectURIPrefix
)
{
this
.
repositoryObjectURIPrefix
=
repositoryObjectURIPrefix
;
}
public
String
getSpecField
()
{
return
specField
;
}
public
void
setSpecField
(
String
titleField
)
{
this
.
specField
=
titleField
;
}
public
String
getSpecFieldPrefix
()
{
return
specFieldPrefix
;
}
public
void
setSpecFieldPrefix
(
String
specFieldPrefix
)
{
this
.
specFieldPrefix
=
specFieldPrefix
;
}
public
boolean
isTextgrid
()
{
return
textgrid
;
}
public
void
setTextgrid
(
boolean
textgrid
)
{
this
.
textgrid
=
textgrid
;
}
public
boolean
isDariah
()
{
return
dariah
;
}
public
void
setDariah
(
boolean
dariah
)
{
this
.
dariah
=
dariah
;
}
public
SesameClient
getSparqlClient
()
{
return
sparqlClient
;
}
public
void
setSparqlClient
(
SesameClient
sparqlClient
)
{
this
.
sparqlClient
=
sparqlClient
;
}
private
static
Map
<
String
,
String
>
setSet
=
new
Hashtable
<
String
,
String
>();
private
OAI_ESClient
oaiEsClient
;
private
SesameClient
sparqlClient
;
private
Set
<
String
>
identifier
=
new
LinkedHashSet
<
String
>();
private
String
formatField
;
private
String
formatToFilter
;
private
String
identifierField
;
private
String
repositoryObjectURIPrefix
;
private
String
specField
;
private
String
specFieldPrefix
;
private
Set
<
String
>
project
=
new
LinkedHashSet
<
String
>();
private
boolean
textgrid
;
private
boolean
dariah
;
/**
* @param oaiEsClient
* @param textgrid
* @param dariah
*/
public
SetDeliverer
(
OAI_ESClient
oaiEsClient
,
boolean
textgrid
,
boolean
dariah
)
{
this
.
oaiEsClient
=
oaiEsClient
;
this
.
textgrid
=
textgrid
;
this
.
dariah
=
dariah
;
}
/**
* @return
*/
public
ListSetsType
setListBuilder
()
{
String
meth
=
"setListBuilder() > "
;
System
.
out
.
println
(
meth
+
"DARIAH="
+
this
.
dariah
+
", TEXTGRID="
+
this
.
textgrid
);
ListSetsType
setList
=
new
ListSetsType
();
QueryBuilder
aggQuery
;
if
(
this
.
textgrid
)
{
aggQuery
=
QueryBuilders
.
matchPhraseQuery
(
"format"
,
TextGridMimetypes
.
DARIAH_COLLECTION
);
}
else
{
aggQuery
=
QueryBuilders
.
matchPhraseQuery
(
"descriptiveMetadata.dc:format"
,
TextGridMimetypes
.
DARIAH_COLLECTION
);
}
System
.
out
.
println
(
meth
+
"aggQuery: "
+
aggQuery
);
SearchRequestBuilder
request
=
OAI_ESClient
.
getOaiESClient
()
.
prepareSearch
(
OAI_ESClient
.
getEsIndex
()).
setTypes
(
OAI_ESClient
.
getEsType
())
.
setQuery
(
aggQuery
).
addField
(
this
.
formatField
).
addField
(
this
.
identifierField
)
.
addField
(
"project.value"
).
addField
(
"project.id"
).
setSize
(
100000
);
System
.
out
.
println
(
meth
+
"request: "
+
request
);
SearchResponse
getRecordListItems
=
request
.
execute
().
actionGet
();
System
.
out
.
println
(
meth
+
"getRecordListItems:"
+
getRecordListItems
);
for
(
SearchHit
hit
:
getRecordListItems
.
getHits
().
getHits
())
{
if
(
this
.
dariah
==
true
&&
hit
.
getFields
().
get
(
this
.
identifierField
).
values
().
get
(
0
)
.
toString
().
startsWith
(
"hdl:"
))
{
String
pid
=
hit
.
getFields
().
get
(
this
.
identifierField
).
values
().
get
(
0
).
toString
();
this
.
identifier
.
add
(
pid
);
System
.
out
.
println
(
meth
+
"PID: "
+
pid
);
}
if
(
this
.
textgrid
==
true
)
{
String
projectName
=
hit
.
getFields
().
get
(
"project.value"
).
values
().
get
(
0
).
toString
();
String
projectID
=
hit
.
getFields
().
get
(
"project.id"
).
values
().
get
(
0
).
toString
();
String
projectSetSpec
=
projectName
.
concat
(
":"
).
concat
(
projectID
);
this
.
setSet
.
put
(
projectID
,
projectName
);
System
.
out
.
println
(
meth
+
"projectID: "
+
projectSetSpec
);
Iterator
it
=
setSet
.
entrySet
().
iterator
();
while
(
it
.
hasNext
())
{
Map
.
Entry
pair
=
(
Map
.
Entry
)
it
.
next
();
SetType
set
=
new
SetType
();
set
.
setSetName
(
pair
.
getValue
().
toString
());
set
.
setSetSpec
(
"project:"
+
pair
.
getKey
().
toString
());
setList
.
getSet
().
add
(
set
);
}
}
}
if
(
this
.
dariah
==
true
)
{
for
(
String
identifierSetSpec
:
this
.
identifier
)
{
String
id
=
identifierSetSpec
;
try
{
id
=
URLDecoder
.
decode
(
id
,
"UTF-8"
);
}
catch
(
UnsupportedEncodingException
e
)
{
e
.
printStackTrace
();
}
id
=
identifierSetSpec
.
substring
(
this
.
repositoryObjectURIPrefix
.
length
());
GetRequestBuilder
collectionNameById
=
OAI_ESClient
.
getOaiESClient
().
prepareGet
().
setIndex
(
OAI_ESClient
.
getEsIndex
())
.
setType
(
OAI_ESClient
.
getEsType
()).
setFields
(
this
.
specField
).
setId
(
id
);
GetResponse
setSpec
=
collectionNameById
.
execute
().
actionGet
();
String
setName
=
""
;
if
(
setSpec
!=
null
&&
setSpec
.
isExists
())
{
if
(
setSpec
.
getField
(
this
.
specField
)
!=
null
)
{
setName
=
setSpec
.
getField
(
this
.
specField
).
getValue
().
toString
();
}
}
SetType
set
=
new
SetType
();
set
.
setSetName
(
setName
);
set
.
setSetSpec
(
this
.
specFieldPrefix
+
id
);
setList
.
getSet
().
add
(
set
);
}
}
this
.
identifier
.
clear
();
return
setList
;
}
/**
* @return
*/
public
String
getFormatField
()
{
return
this
.
formatField
;
}
/**
* @param formatField
*/
public
void
setFormatField
(
String
formatField
)
{
this
.
formatField
=
formatField
;
}
public
String
getFormatToFilter
()
{
return
this
.
formatToFilter
;
}
/**
* @param formatToFilter
*/
public
void
setFormatToFilter
(
String
formatToFilter
)
{
this
.
formatToFilter
=
formatToFilter
;
}
/**
* @return
*/
public
String
getIdentifierField
()
{
return
this
.
identifierField
;
}
/**
* @param identifierField
*/
public
void
setIdentifierField
(
String
identifierField
)
{
this
.
identifierField
=
identifierField
;
}
/**
* @return
*/
public
String
getRepositoryObjectURIPrefix
()
{
return
this
.
repositoryObjectURIPrefix
;
}
/**
* @param repositoryObjectURIPrefix
*/
public
void
setRepositoryObjectURIPrefix
(
String
repositoryObjectURIPrefix
)
{
this
.
repositoryObjectURIPrefix
=
repositoryObjectURIPrefix
;
}
/**
* @return
*/
public
String
getSpecField
()
{
return
this
.
specField
;
}
/**
* @param titleField
*/
public
void
setSpecField
(
String
titleField
)
{
this
.
specField
=
titleField
;
}
/**
* @return
*/
public
String
getSpecFieldPrefix
()
{
return
this
.
specFieldPrefix
;
}
/**
* @param specFieldPrefix
*/
public
void
setSpecFieldPrefix
(
String
specFieldPrefix
)
{
this
.
specFieldPrefix
=
specFieldPrefix
;
}
/**
* @return
*/
public
boolean
isTextgrid
()
{
return
this
.
textgrid
;
}
/**
* @param textgrid
*/
public
void
setTextgrid
(
boolean
textgrid
)
{
this
.
textgrid
=
textgrid
;
}
/**
* @return
*/
public
boolean
isDariah
()
{
return
this
.
dariah
;
}
/**
* @param dariah
*/
public
void
setDariah
(
boolean
dariah
)
{
this
.
dariah
=
dariah
;
}
/**
* @return
*/
public
SesameClient
getSparqlClient
()
{
return
this
.
sparqlClient
;
}
/**
* @param sparqlClient
*/
public
void
setSparqlClient
(
SesameClient
sparqlClient
)
{
this
.
sparqlClient
=
sparqlClient
;
}
}
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment