Skip to content

Commit

Permalink
convert Long and BigInteger to a string, fix global search for large …
Browse files Browse the repository at this point in the history
…numbers
  • Loading branch information
BartChris committed Feb 14, 2024
1 parent 3ac99ea commit 9f627f0
Show file tree
Hide file tree
Showing 4 changed files with 102 additions and 2 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.math.BigInteger;
import java.net.URI;
import java.net.URISyntaxException;
import java.nio.charset.StandardCharsets;
Expand Down Expand Up @@ -647,7 +648,7 @@ public List<ProcessDTO> findByAnything(String searchQuery) throws DataException
ProcessTypeField.PROJECT_TITLE.getKey(),
ProcessTypeField.COMMENTS.getKey(),
ProcessTypeField.WIKI_FIELD.getKey(),
ProcessTypeField.TEMPLATE_TITLE.getKey()).operator(Operator.AND);
ProcessTypeField.TEMPLATE_TITLE.getKey()).operator(Operator.AND).lenient(true);

if (searchQuery.matches("^\\d*$")) {
multiMatchQueryForProcessFields.fields().put(ProcessTypeField.ID.getKey(), 1.0f);
Expand Down Expand Up @@ -2105,8 +2106,10 @@ private Map<String, Object> iterateOverJsonObject(JSONObject xmlJSONObject) {
while (keys.hasNext()) {
String key = keys.next();
Object value = xmlJSONObject.get(key);
if (value instanceof String || value instanceof Integer || value instanceof Long) {
if (value instanceof String || value instanceof Integer) {
json.put(prepareKey(key), value);
} else if (value instanceof Long || value instanceof BigInteger){
json.put(prepareKey(key), value.toString());
} else if (value instanceof JSONObject) {
JSONObject jsonObject = (JSONObject) value;
Map<String, Object> map = iterateOverJsonObject(jsonObject);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -233,6 +233,10 @@ public void shouldFindByMetadataContent() throws DataException {
public void shouldFindByLongNumberInMetadata() throws DataException {
assertEquals(processNotFound, 1, processService
.findByMetadata(Collections.singletonMap("CatalogIDDigital", "999999999999999991")).size());
assertEquals(processNotFound, 1, processService
.findByMetadata(Collections.singletonMap("CatalogIDDigital", "991022551489706476")).size());
assertEquals(processNotFound, 1, processService
.findByMetadata(Collections.singletonMap("CatalogIDDigital", "999999999999999999999999991")).size());
}

@Test
Expand Down
2 changes: 2 additions & 0 deletions Kitodo/src/test/resources/metadata/5/meta.xml
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,8 @@
<kitodo:metadata name="TitleDocMainShort">Second</kitodo:metadata>
<kitodo:metadata name="TSL_ATS">Proc</kitodo:metadata>
<kitodo:metadata name="CatalogIDDigital">999999999999999991</kitodo:metadata>
<kitodo:metadata name="CatalogIDDigital">991022551489706476</kitodo:metadata>
<kitodo:metadata name="CatalogIDDigital">999999999999999999999999991</kitodo:metadata>
</kitodo:kitodo>
</mets:xmlData>
</mets:mdWrap>
Expand Down
91 changes: 91 additions & 0 deletions Kitodo/src/test/resources/metadata/8/meta.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,91 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<mets:mets xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:kitodo="http://meta.kitodo.org/v1/" xmlns:mets="http://www.loc.gov/METS/">
<mets:metsHdr CREATEDATE="2024-02-14T11:36:34.374+01:00" LASTMODDATE="2024-02-14T11:36:34.546+01:00">
<mets:metsDocumentID>8</mets:metsDocumentID>
</mets:metsHdr>
<mets:dmdSec ID="uuid-e07f4429-7a8a-3d79-8b01-46bf9be78f33">
<mets:mdWrap>
<mets:xmlData>
<kitodo:kitodo>
<kitodo:metadata name="shelfmarksource">Lit.Graec.B.2615</kitodo:metadata>
<kitodo:metadata name="DocLanguage">lat</kitodo:metadata>
<kitodo:metadata name="SizeSourcePrint">[11] Bl., 825, [118] Bl.</kitodo:metadata>
<kitodo:metadata name="PlaceOfPublication">Argentorati</kitodo:metadata>
<kitodo:metadata name="PublicationYearSorting">1713</kitodo:metadata>
<kitodo:metadata name="slub_edition">Editio Postrema curante Joh. Henrico Lederlino</kitodo:metadata>
<kitodo:metadata name="CatalogIDSourceKXP">1087020662</kitodo:metadata>
<kitodo:metadata name="CatalogIDDigital">11111</kitodo:metadata>
<kitodo:metadata name="PublisherName">Dulssecker</kitodo:metadata>
<kitodo:metadata name="document_type">Monograph</kitodo:metadata>
<kitodo:metadata name="DocLanguage">gre</kitodo:metadata>
<kitodo:metadata name="CatalogIDPeriodicalDB">VD18 11358211</kitodo:metadata>
<kitodo:metadataGroup name="ContributorPerson">
<kitodo:metadata name="RoleText">Komm.</kitodo:metadata>
<kitodo:metadata name="DisplayForm">Kühn, Joachim</kitodo:metadata>
<kitodo:metadata name="FirstName">Joachim</kitodo:metadata>
<kitodo:metadata name="LastName">Kühn</kitodo:metadata>
<kitodo:metadata name="IdentifierPPN">1231853166</kitodo:metadata>
</kitodo:metadataGroup>
<kitodo:metadataGroup name="ContributorPerson">
<kitodo:metadata name="RoleText">Hrsg.</kitodo:metadata>
<kitodo:metadata name="LastName">Lederlin</kitodo:metadata>
<kitodo:metadata name="Authority">gnd</kitodo:metadata>
<kitodo:metadata name="FirstName">Jean Henri</kitodo:metadata>
<kitodo:metadata name="IdentifierPPN">077449827</kitodo:metadata>
<kitodo:metadata name="IdentifierGND">115755470</kitodo:metadata>
<kitodo:metadata name="IdentifierGNDURI">http://d-nb.info/gnd/115755470</kitodo:metadata>
<kitodo:metadata name="DisplayForm">Lederlin, Jean Henri</kitodo:metadata>
</kitodo:metadataGroup>
<kitodo:metadataGroup name="ContributorPerson">
<kitodo:metadata name="DisplayForm">Scheffer, Johannes</kitodo:metadata>
<kitodo:metadata name="RoleText">Komm.</kitodo:metadata>
<kitodo:metadata name="Authority">gnd</kitodo:metadata>
<kitodo:metadata name="LastName">Scheffer</kitodo:metadata>
<kitodo:metadata name="IdentifierGND">100331181</kitodo:metadata>
<kitodo:metadata name="FirstName">Johannes</kitodo:metadata>
<kitodo:metadata name="IdentifierPPN">13970907X</kitodo:metadata>
<kitodo:metadata name="IdentifierGNDURI">http://d-nb.info/gnd/100331181</kitodo:metadata>
</kitodo:metadataGroup>
<kitodo:metadataGroup name="ContributorPerson">
<kitodo:metadata name="IdentifierGNDURI">http://d-nb.info/gnd/124906761</kitodo:metadata>
<kitodo:metadata name="DisplayForm">Vultejus, Justus</kitodo:metadata>
<kitodo:metadata name="Authority">gnd</kitodo:metadata>
<kitodo:metadata name="IdentifierPPN">367774283</kitodo:metadata>
<kitodo:metadata name="IdentifierGND">124906761</kitodo:metadata>
<kitodo:metadata name="RoleText">Übers.</kitodo:metadata>
<kitodo:metadata name="FirstName">Justus</kitodo:metadata>
<kitodo:metadata name="LastName">Vultejus</kitodo:metadata>
</kitodo:metadataGroup>
<kitodo:metadataGroup name="Person">
<kitodo:metadata name="IdentifierGNDURI">http://d-nb.info/gnd/119160285</kitodo:metadata>
<kitodo:metadata name="Authority">gnd</kitodo:metadata>
<kitodo:metadata name="DisplayForm">Aelianus, Claudius</kitodo:metadata>
<kitodo:metadata name="LastName">Aelianus</kitodo:metadata>
<kitodo:metadata name="IdentifierGND">119160285</kitodo:metadata>
<kitodo:metadata name="IdentifierPPN">079955614</kitodo:metadata>
<kitodo:metadata name="FirstName">Claudius</kitodo:metadata>
</kitodo:metadataGroup>
</kitodo:kitodo>
</mets:xmlData>
</mets:mdWrap>
</mets:dmdSec>
<mets:amdSec>
<mets:sourceMD ID="uuid-465d22b8-569c-392e-9f47-ebe25ce0d09a">
<mets:mdWrap>
<mets:xmlData>
<kitodo:kitodo>
<kitodo:metadata name="TitleDocMain">Ki. tolianu dophistu</kitodo:metadata>
</kitodo:kitodo>
</mets:xmlData>
</mets:mdWrap>
</mets:sourceMD>
</mets:amdSec>
<mets:fileSec/>
<mets:structMap TYPE="PHYSICAL">
<mets:div ID="uuid-e98bb519-453a-4743-bb01-649e28e8bfe7"/>
</mets:structMap>
<mets:structMap TYPE="LOGICAL">
<mets:div ID="uuid-c68b5d65-e0b2-4ab0-91ab-198ffb2c968d" DMDID="uuid-e07f4429-7a8a-3d79-8b01-46bf9be78f33" ADMID="uuid-465d22b8-569c-392e-9f47-ebe25ce0d09a" TYPE="Monograph"/>
</mets:structMap>
<mets:structLink/>
</mets:mets>

0 comments on commit 9f627f0

Please sign in to comment.