Skip to content

Commit

Permalink
Issue #1046
Browse files Browse the repository at this point in the history
  • Loading branch information
pavel-stastny committed May 23, 2024
1 parent d9496d7 commit adb540e
Show file tree
Hide file tree
Showing 5 changed files with 88 additions and 14 deletions.
5 changes: 5 additions & 0 deletions installation/solr-9.x.cloud/logs/managed-schema
Original file line number Diff line number Diff line change
Expand Up @@ -143,6 +143,11 @@
<!-- solr dates ?? Je to nutne ?? -->
<field name="solr_dates" type="string" indexed="true" stored="true" multiValued="true"/>

<!-- date from solr -->
<field name="date_range_start.year" type="int" indexed="true" stored="true" multiValued="false"/>
<field name="date_range_end.year" type="int" indexed="true" stored="true" multiValued="false"/>
<field name="date.str" type="string" indexed="true" stored="true" multiValued="false" docValues="false"/>

<field name="authors" type="string" indexed="true" stored="true" multiValued="true" docValues="true"/>
<field name="publishers" type="string" indexed="true" stored="true" multiValued="true" docValues="true"/>

Expand Down
7 changes: 7 additions & 0 deletions installation/solr-9.x/logs/conf/managed-schema
Original file line number Diff line number Diff line change
Expand Up @@ -155,6 +155,13 @@
<!-- solr dates ?? Je to nutne ?? -->
<field name="solr_dates" type="string" indexed="true" stored="true" multiValued="true"/>


<!-- date from solr -->
<field name="date_range_start.year" type="int" indexed="true" stored="true" multiValued="false"/>
<field name="date_range_end.year" type="int" indexed="true" stored="true" multiValued="false"/>
<field name="date.str" type="string" indexed="true" stored="true" multiValued="false" docValues="false"/>


<field name="authors" type="string" indexed="true" stored="true" multiValued="true" docValues="true"/>
<field name="publishers" type="string" indexed="true" stored="true" multiValued="true" docValues="true"/>

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,11 @@ public class LogRecord {
private String ownPidpath;
private String ownModelPath;

private String dateStr;
private String dateRangeStart;
private String dateRangeEnd;


private Set<String> licenses = new LinkedHashSet<>();
private Set<String> issueDates = new LinkedHashSet<>();
private Set<String> langs = new LinkedHashSet<>();
Expand Down Expand Up @@ -198,18 +203,31 @@ public void removeTitle(String title) {
public Set<String> getSolrDates() {
return solrDates;
}

public void setSolrDates(Set<String> solrDates) {
this.solrDates = solrDates;
public void setDateStr(String dateStr) {
this.dateStr = dateStr;
}

public void addSolrDate(String sDate) {
this.solrDates.add(sDate);
public String getDateStr() {
return dateStr;
}

public void removeSolrDate(String sDate) {
this.solrDates.remove(sDate);

public void setDateRangeStart(String dateRangeStart) {
this.dateRangeStart = dateRangeStart;
}

public String getDateRangeStart() {
return dateRangeStart;
}

public void setDateRangeEnd(String dateRangeEnd) {
this.dateRangeEnd = dateRangeEnd;
}

public String getDateRangeEnd() {
return dateRangeEnd;
}


public Set<String> getAuthors() {
return authors;
Expand Down Expand Up @@ -417,7 +435,28 @@ public Document toSolrBatch(DocumentBuilderFactory documentFactory) throws Parse
requestedUrl.setAttribute("name", "requested_url");
requestedUrl.setTextContent(this.requestedUrl);
docElm.appendChild(requestedUrl);

if (this.dateStr != null) {
Element dateStrField = doc.createElement("field");
requestedUrl.setAttribute("name", "date.str");
requestedUrl.setTextContent(this.dateStr);
docElm.appendChild(dateStrField);
}

if (this.dateRangeStart != null) {
Element dateStrField = doc.createElement("field");
requestedUrl.setAttribute("name", "date_range_start.year");
requestedUrl.setTextContent(this.dateRangeStart);
docElm.appendChild(dateStrField);
}

if (this.dateRangeEnd != null) {
Element dateStrField = doc.createElement("field");
requestedUrl.setAttribute("name", "date_range_end.year");
requestedUrl.setTextContent(this.dateRangeEnd);
docElm.appendChild(dateStrField);
}

if (this.rootTitle != null) {
Element rootTitleElm = doc.createElement("field");
rootTitleElm.setAttribute("name", "root_title");
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -112,6 +112,9 @@ public SolrStatisticsAccessLogImpl() {
@Override
public void reportAccess(final String pid, final String streamName) throws IOException {
Document solrDoc = this.solrAccess.getSolrDataByPid(pid);



ObjectPidsPath[] paths = this.solrAccess.getPidPaths(solrDoc);
ObjectModelsPath[] mpaths = this.solrAccess.getModelPaths(solrDoc);
ObjectPidsPath[] ownPidPaths = this.solrAccess.getOwnPidPaths(solrDoc);
Expand Down Expand Up @@ -198,7 +201,18 @@ public void reportAccess(final String pid, final String streamName) throws IOExc
logRecord.setSessionToken(sessionId);
}

// Issue #1046
Object dateFromSolr = SElemUtils.selem("str", "date.str", solrDoc);
if (dateFromSolr!= null) logRecord.setDateStr(dateFromSolr.toString());

Object dateRangeEnd = SElemUtils.selem("int", "date_range_end.year", solrDoc);
if (dateRangeEnd != null) logRecord.setDateRangeEnd(dateRangeEnd.toString());

Object dateRangeStart = SElemUtils.selem("int", "date_range_start.year", solrDoc);
if (dateRangeStart != null) logRecord.setDateRangeStart(dateRangeStart.toString());

logRecord.setFieldsFromHttpRequestHeaders(extractFieldsFromHttpRequestHeaders());


for (int i = 0, ll = paths.length; i < ll; i++) {
if (paths[i].contains(SpecialObjects.REPOSITORY.getPid())) {
Expand All @@ -222,11 +236,6 @@ public void reportAccess(final String pid, final String streamName) throws IOExc
logRecord.addIssueDate(dateFromDC.toString());
}

Object dateFromSolr = SElemUtils.selem("str", "datum_str", solrDoc);
dateFromSolr = dateFromSolr != null ? dateFromSolr : null;
if (dateFromSolr != null) {
logRecord.addSolrDate(dateFromSolr.toString());
}

Object languageFromDc = DCUtils.languageFromDC(dc);
if (languageFromDc != null) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -326,6 +326,20 @@ private static Map toMap(JSONObject obj) {
if (obj.has("user")) {
map.put("username", obj.optString("user"));
}


if (obj.has("date.str")) {
map.put("date.str", obj.getString("date.str"));

int start = obj.getInt("date_range_start.year");
int end = obj.getInt("date_range_end.year");
//Issue #1046
if (start >-1 && start == end ) {
map.put("date.pulication_year", start);

This comment has been minimized.

Copy link
@rzeh4n

rzeh4n Aug 29, 2024

Contributor

@pavel-stastny pozor, máš tam překlep "pulication_year" namísto "publication_year"

This comment has been minimized.

Copy link
@pavel-stastny

pavel-stastny Aug 29, 2024

Author Contributor

Dik

}

}

if (obj.has("hrh_referer")) {
//v SOLR: "hrh_referer":["http://localhost:4321/"],
String hrhReferer = obj.optString("hrh_referer");
Expand Down

0 comments on commit adb540e

Please sign in to comment.