diff --git a/src/main/resources/templates/db_scripts/data-migration/14.0.0/update_indices.ftl b/src/main/resources/templates/db_scripts/data-migration/14.0.0/update_indices.ftl new file mode 100644 index 00000000..b0feab70 --- /dev/null +++ b/src/main/resources/templates/db_scripts/data-migration/14.0.0/update_indices.ftl @@ -0,0 +1,14 @@ +<#if mode.name() == "UPDATE"> + DROP INDEX IF EXISTS po_line_po_line_number_sort; + CREATE INDEX po_line_po_line_number_sort ON ${myuniversity}_${mymodule}.po_line + (left(lower(jsonb->>'poLineNumber'),600), lower(jsonb->>'poLineNumber')); + + CREATE INDEX IF NOT EXISTS purchase_order_no_acq_unit ON ${myuniversity}_${mymodule}.purchase_order + ((lower(f_unaccent(jsonb->>'acqUnitIds')) NOT LIKE lower(f_unaccent('[]')))); + CREATE INDEX IF NOT EXISTS purchase_order_updated_date_sort ON ${myuniversity}_${mymodule}.purchase_order + (left(lower(f_unaccent(jsonb->'metadata'->>'updatedDate')), 600), + lower(f_unaccent(jsonb->'metadata'->>'updatedDate'))); + + CREATE INDEX IF NOT EXISTS titles_no_acq_unit ON ${myuniversity}_${mymodule}.titles + ((lower(f_unaccent(jsonb->>'acqUnitIds')) NOT LIKE lower(f_unaccent('[]')))); + diff --git a/src/main/resources/templates/db_scripts/po_line_table.sql b/src/main/resources/templates/db_scripts/po_line_table.sql index a6724387..fb74ad64 100644 --- a/src/main/resources/templates/db_scripts/po_line_table.sql +++ b/src/main/resources/templates/db_scripts/po_line_table.sql @@ -6,7 +6,7 @@ CREATE INDEX IF NOT EXISTS po_line_updated_date_sort ON ${myuniversity}_${mymodu lower(f_unaccent(jsonb->'metadata'->>'updatedDate'))); CREATE INDEX IF NOT EXISTS po_line_title_or_package_sort ON ${myuniversity}_${mymodule}.po_line - (left(lower(f_unaccent(jsonb->>'titleOrPackage')),600), lower(f_unaccent(po_line.jsonb->>'titleOrPackage'))); + (left(lower(f_unaccent(jsonb->>'titleOrPackage')),600), lower(f_unaccent(jsonb->>'titleOrPackage'))); CREATE INDEX IF NOT EXISTS po_line_po_line_number_sort ON ${myuniversity}_${mymodule}.po_line - (left(lower(f_unaccent(jsonb->>'poLineNumber')),600), lower(f_unaccent(po_line.jsonb->>'poLineNumber'))); + (left(lower(jsonb->>'poLineNumber'),600), lower(jsonb->>'poLineNumber')); diff --git a/src/main/resources/templates/db_scripts/purchase_order_table.sql b/src/main/resources/templates/db_scripts/purchase_order_table.sql index 826ecc88..21efbdde 100644 --- a/src/main/resources/templates/db_scripts/purchase_order_table.sql +++ b/src/main/resources/templates/db_scripts/purchase_order_table.sql @@ -3,3 +3,10 @@ CREATE UNIQUE INDEX IF NOT EXISTS purchase_order_po_number_unique_idx ON ${myuni CREATE INDEX IF NOT EXISTS purchase_order_customfields_recordservice_idx_gin ON ${myuniversity}_${mymodule}.purchase_order USING GIN ((jsonb->'customFields')); + +CREATE INDEX IF NOT EXISTS purchase_order_no_acq_unit ON ${myuniversity}_${mymodule}.purchase_order + ((lower(f_unaccent(jsonb->>'acqUnitIds')) NOT LIKE lower(f_unaccent('[]')))); + +CREATE INDEX IF NOT EXISTS purchase_order_updated_date_sort ON ${myuniversity}_${mymodule}.purchase_order + (left(lower(f_unaccent(jsonb->'metadata'->>'updatedDate')), 600), + lower(f_unaccent(jsonb->'metadata'->>'updatedDate'))); diff --git a/src/main/resources/templates/db_scripts/schema.json b/src/main/resources/templates/db_scripts/schema.json index 85f6859d..c8920907 100644 --- a/src/main/resources/templates/db_scripts/schema.json +++ b/src/main/resources/templates/db_scripts/schema.json @@ -205,6 +205,11 @@ "run": "after", "snippetPath": "data-migration/14.0.0/drop_internal_lock_table.ftl", "fromModuleVersion": "mod-orders-storage-14.0.0" + }, + { + "run": "after", + "snippetPath": "data-migration/14.0.0/update_indices.ftl", + "fromModuleVersion": "mod-orders-storage-14.0.0" } ], "tables": [ @@ -223,102 +228,163 @@ "customSnippetPath": "purchase_order_table.sql", "index": [ { - "fieldName": "acqUnitIds", - "caseSensitive": false + "fieldName": "approved", + "caseSensitive": true, + "removeAccents": false, + "sqlExpression": "(jsonb->>'approved')", + "sqlExpressionQuery": "$" }, { "fieldName": "assignedTo", - "caseSensitive": false + "caseSensitive": true, + "removeAccents": false, + "sqlExpression": "(jsonb->>'assignedTo')", + "sqlExpressionQuery": "$" }, { - "fieldName": "metadata.createdDate", - "caseSensitive": false + "fieldName": "billTo", + "caseSensitive": true, + "removeAccents": false, + "sqlExpression": "(jsonb->>'billTo')", + "sqlExpressionQuery": "$" }, { - "fieldName": "metadata.createdByUserId", - "caseSensitive": false + "fieldName": "closeReason.reason", + "caseSensitive": true, + "removeAccents": false }, { - "fieldName": "workflowStatus", - "caseSensitive": false + "fieldName": "dateOrdered", + "caseSensitive": true, + "removeAccents": false }, { - "fieldName": "approved", - "caseSensitive": false + "fieldName": "ongoing.isSubscription", + "caseSensitive": true, + "removeAccents": false, + "sqlExpression": "(jsonb->'ongoing'->>'isSubscription')", + "sqlExpressionQuery": "$" }, { - "fieldName": "dateOrdered", - "caseSensitive": false + "fieldName": "metadata.createdByUserId", + "caseSensitive": true, + "removeAccents": false, + "sqlExpression": "(jsonb->'metadata'->>'createdByUserId')", + "sqlExpressionQuery": "$" }, { - "fieldName": "orderType", - "caseSensitive": false + "fieldName": "metadata.createdDate", + "caseSensitive": true, + "removeAccents": false }, { - "fieldName": "reEncumber", - "caseSensitive": false + "fieldName": "metadata.updatedByUserId", + "caseSensitive": true, + "removeAccents": false, + "sqlExpression": "(jsonb->'metadata'->>'updatedByUserId')", + "sqlExpressionQuery": "$" }, { - "fieldName": "vendor", - "caseSensitive": false + "fieldName": "metadata.updatedDate", + "caseSensitive": true, + "removeAccents": false }, { - "fieldName": "renewal.manualRenewal", - "tOps": "DELETE" + "fieldName": "ongoing.manualRenewal", + "caseSensitive": true, + "removeAccents": false, + "sqlExpression": "(jsonb->'ongoing'->>'manualRenewal')", + "sqlExpressionQuery": "$" }, { - "fieldName": "renewal.renewalDate", - "tOps": "DELETE" + "fieldName": "ongoing.renewalDate", + "caseSensitive": true, + "removeAccents": false }, { - "fieldName": "renewal.reviewPeriod", - "tOps": "DELETE" + "fieldName": "ongoing.reviewPeriod", + "caseSensitive": true, + "removeAccents": false }, { - "fieldName": "ongoing.manualRenewal", - "caseSensitive": false + "fieldName": "orderType", + "caseSensitive": true, + "removeAccents": false, + "sqlExpression": "(jsonb->>'orderType')", + "sqlExpressionQuery": "$" }, { - "fieldName": "ongoing.renewalDate", - "caseSensitive": false + "fieldName": "poNumber", + "caseSensitive": false, + "removeAccents": false, + "sqlExpression": "(jsonb->>'poNumber')", + "sqlExpressionQuery": "$" }, { - "fieldName": "ongoing.reviewPeriod", - "caseSensitive": false - } - ], - "fullTextIndex": [ + "fieldName": "poNumberPrefix", + "caseSensitive": true, + "removeAccents": false, + "sqlExpression": "(jsonb->>'poNumberPrefix')", + "sqlExpressionQuery": "$" + }, { - "fieldName": "closeReason.reason" + "fieldName": "poNumberSuffix", + "caseSensitive": true, + "removeAccents": false, + "sqlExpression": "(jsonb->>'poNumberSuffix')", + "sqlExpressionQuery": "$" }, { - "fieldName": "closeReason.note" + "fieldName": "reEncumber", + "caseSensitive": true, + "removeAccents": false, + "sqlExpression": "(jsonb->>'reEncumber')", + "sqlExpressionQuery": "$" }, { - "fieldName": "acqUnitIds" + "fieldName": "shipTo", + "caseSensitive": true, + "removeAccents": false, + "sqlExpression": "(jsonb->>'shipTo')", + "sqlExpressionQuery": "$" }, { - "fieldName": "orderType" + "fieldName": "vendor", + "caseSensitive": true, + "removeAccents": false, + "sqlExpression": "(jsonb->>'vendor')", + "sqlExpressionQuery": "$" }, { - "fieldName": "workflowStatus" + "fieldName": "workflowStatus", + "caseSensitive": true, + "removeAccents": false, + "sqlExpression": "(jsonb->>'workflowStatus')", + "sqlExpressionQuery": "$" } ], - "ginIndex": [ + "fullTextIndex": [ { - "fieldName": "poNumber", + "fieldName": "acqUnitIds", "caseSensitive": false, - "removeAccents": true - }, + "removeAccents": false + } + ], + "ginIndex": [ { "fieldName": "dateOrdered", - "caseSensitive": false, - "removeAccents": true + "caseSensitive": true, + "removeAccents": false }, { "fieldName": "metadata.createdDate", + "caseSensitive": true, + "removeAccents": false + }, + { + "fieldName": "poNumber", "caseSensitive": false, - "removeAccents": true + "removeAccents": false } ] }, @@ -337,117 +403,184 @@ ], "index": [ { - "fieldName": "eresource.accessProvider", - "caseSensitive": false - }, - { - "fieldName": "eresource.activated", - "caseSensitive": false + "fieldName": "acquisitionMethod", + "caseSensitive": true, + "removeAccents": false, + "sqlExpression": "(jsonb->>'acquisitionMethod')", + "sqlExpressionQuery": "$" }, { - "fieldName": "eresource.expectedActivation", - "caseSensitive": false + "fieldName": "claim.grace", + "caseSensitive": true, + "removeAccents": false }, { - "fieldName": "eresource.trial", - "caseSensitive": false + "fieldName": "claim.sent", + "caseSensitive": true, + "removeAccents": false, + "sqlExpression": "(jsonb->'claim'->>'sent')", + "sqlExpressionQuery": "$" }, { - "fieldName": "eresource.materialType", - "caseSensitive": false + "fieldName": "collection", + "caseSensitive": true, + "removeAccents": false, + "sqlExpression": "(jsonb->>'collection')", + "sqlExpressionQuery": "$" }, { "fieldName": "details.subscriptionFrom", - "caseSensitive": false + "caseSensitive": true, + "removeAccents": false }, { "fieldName": "details.subscriptionTo", - "caseSensitive": false + "caseSensitive": true, + "removeAccents": false }, { - "fieldName": "location.locationId", - "caseSensitive": false + "fieldName": "eresource.accessProvider", + "caseSensitive": true, + "removeAccents": false, + "sqlExpression": "(jsonb->'eresource'->>'accessProvider')", + "sqlExpressionQuery": "$" }, { - "fieldName": "location.holdingId", - "caseSensitive": false + "fieldName": "eresource.activated", + "caseSensitive": true, + "removeAccents": false, + "sqlExpression": "(jsonb->'eresource'->>'activated')", + "sqlExpressionQuery": "$" }, { - "fieldName": "physical.receiptDue", - "caseSensitive": false + "fieldName": "eresource.expectedActivation", + "caseSensitive": true, + "removeAccents": false }, { - "fieldName": "physical.expectedReceiptDate", - "caseSensitive": false + "fieldName": "eresource.materialType", + "caseSensitive": true, + "removeAccents": false, + "sqlExpression": "(jsonb->'eresource'->>'materialType')", + "sqlExpressionQuery": "$" }, { - "fieldName": "physical.volumes", - "caseSensitive": false + "fieldName": "eresource.trial", + "caseSensitive": true, + "removeAccents": false, + "sqlExpression": "(jsonb->'eresource'->>'trial')", + "sqlExpressionQuery": "$" }, { - "fieldName": "physical.materialType", - "caseSensitive": false + "fieldName": "lastEDIExportDate", + "caseSensitive": true, + "removeAccents": false }, { - "fieldName": "claim.grace", - "caseSensitive": false + "fieldName": "metadata.createdDate", + "caseSensitive": true, + "removeAccents": false }, { - "fieldName": "claim.sent", - "caseSensitive": false + "fieldName": "metadata.updatedDate", + "caseSensitive": true, + "removeAccents": false }, { - "fieldName": "collection", - "caseSensitive": false + "fieldName": "orderFormat", + "caseSensitive": true, + "removeAccents": false, + "sqlExpression": "(jsonb->>'orderFormat')", + "sqlExpressionQuery": "$" }, { - "fieldName": "receiptStatus", - "caseSensitive": false + "fieldName": "packagePoLineId", + "caseSensitive": true, + "removeAccents": false, + "sqlExpression": "(jsonb->>'packagePoLineId')", + "sqlExpressionQuery": "$" }, { "fieldName": "paymentStatus", - "caseSensitive": false + "caseSensitive": true, + "removeAccents": false, + "sqlExpression": "(jsonb->>'paymentStatus')", + "sqlExpressionQuery": "$" }, { - "fieldName": "orderFormat", - "caseSensitive": false + "fieldName": "physical.expectedReceiptDate", + "caseSensitive": true, + "removeAccents": false + }, + { + "fieldName": "physical.materialType", + "caseSensitive": true, + "removeAccents": false, + "sqlExpression": "(jsonb->'physical'->>'materialType')", + "sqlExpressionQuery": "$" + }, + { + "fieldName": "physical.receiptDue", + "caseSensitive": true, + "removeAccents": false + }, + { + "fieldName": "poLineNumber", + "caseSensitive": false, + "removeAccents": false, + "sqlExpression": "(jsonb->>'poLineNumber')", + "sqlExpressionQuery": "$" }, { "fieldName": "receiptDate", - "caseSensitive": false + "caseSensitive": true, + "removeAccents": false }, { - "fieldName": "metadata.createdDate", - "caseSensitive": false + "fieldName": "receiptStatus", + "caseSensitive": true, + "removeAccents": false, + "sqlExpression": "(jsonb->>'receiptStatus')", + "sqlExpressionQuery": "$" }, { "fieldName": "rush", - "caseSensitive": false + "caseSensitive": true, + "removeAccents": false, + "sqlExpression": "(jsonb->>'rush')", + "sqlExpressionQuery": "$" }, { "fieldName": "source", - "caseSensitive": false + "caseSensitive": true, + "removeAccents": false, + "sqlExpression": "(jsonb->>'source')", + "sqlExpressionQuery": "$" + }, + { + "fieldName": "vendorDetail.vendorAccount", + "caseSensitive": false, + "removeAccents": false, + "sqlExpression": "(jsonb->'vendorDetail'->>'vendorAccount')", + "sqlExpressionQuery": "$" } ], "fullTextIndex": [ { - "fieldName": "publisher", - "tOps": "DELETE" + "fieldName": "contributorName", + "caseSensitive": false, + "removeAccents": true, + "multiFieldNames": "contributors[*].contributor" }, { "fieldName": "donor", - "tOps": "DELETE" - }, - { - "fieldName": "selector", - "tOps": "DELETE" + "caseSensitive": false, + "removeAccents": true }, { - "fieldName": "vendorDetail.referenceNumbers", + "fieldName": "donorOrganizationIds", "caseSensitive": false, - "removeAccents": true, - "arraySubfield": "refNumber", - "arrayModifiers": ["refNumberType", "vendorDetailsSource"] + "removeAccents": false }, { "fieldName": "fundDistribution", @@ -456,6 +589,12 @@ "arraySubfield": "fundId", "arrayModifiers": ["fundId"] }, + { + "fieldName": "keyword", + "caseSensitive": false, + "removeAccents": true, + "multiFieldNames": "contributors[*].contributor,poLineNumber,requester,titleOrPackage,publisher,vendorDetail.vendorAccount,vendorDetail.referenceNumbers[*].refNumber,donor,selector,physical.volumes[*],details.productIds[*].productId" + }, { "fieldName": "locations", "caseSensitive": false, @@ -464,97 +603,73 @@ "arrayModifiers": ["holdingId"] }, { - "fieldName": "orderFormat", + "fieldName": "physicalVolumes", "caseSensitive": false, - "removeAccents": true + "removeAccents": true, + "multiFieldNames": "physical.volumes[*]" }, { "fieldName": "productIds", - "multiFieldNames": "details.productIds[*].productId" - } - ], - "ginIndex": [ - { - "fieldName": "fundDistribution", "caseSensitive": false, - "removeAccents": true + "removeAccents": false, + "multiFieldNames": "details.productIds[*].productId" }, { - "fieldName": "details.productIds", + "fieldName": "publisher", "caseSensitive": false, "removeAccents": true }, { - "fieldName": "donorOrganizationIds", + "fieldName": "requester", "caseSensitive": false, "removeAccents": true }, { - "fieldName": "title", - "tOps": "DELETE" - }, - { - "fieldName": "titleOrPackage", + "fieldName": "searchLocations", "caseSensitive": false, - "removeAccents": true, - "tOps": "ADD" + "removeAccents": false, + "multiFieldNames": "locations[*].holdingId,searchLocationIds[*]" }, { - "fieldName": "vendorDetail.vendorAccount", + "fieldName": "selector", "caseSensitive": false, "removeAccents": true }, { - "fieldName": "tags", + "fieldName": "tags.tagList", "caseSensitive": false, "removeAccents": true }, { - "fieldName": "contributors", + "fieldName": "titleOrPackage", "caseSensitive": false, "removeAccents": true }, { - "fieldName": "requester", + "fieldName": "vendorDetail.referenceNumbers", "caseSensitive": false, - "removeAccents": true - }, + "removeAccents": false, + "arraySubfield": "refNumber", + "arrayModifiers": ["refNumberType", "vendorDetailsSource"] + } + ], + "ginIndex": [ { "fieldName": "poLineNumber", "caseSensitive": false, - "removeAccents": true - }, - { - "fieldName": "publisher", - "caseSensitive": false, - "removeAccents": true + "removeAccents": false }, { - "fieldName": "donor", + "fieldName": "vendorDetail.vendorAccount", "caseSensitive": false, - "removeAccents": true - }, - { - "fieldName": "selector", - "caseSensitive": false, - "removeAccents": true + "removeAccents": false }, { "fieldName": "vendorDetail.referenceNumbers", "caseSensitive": false, - "removeAccents": true, + "removeAccents": false, "arraySubfield": "refNumber", "arrayModifiers": ["refNumberType", "vendorDetailsSource"] - }, - { - "fieldName": "physical.volumes", - "caseSensitive": false, - "removeAccents": true - }, - { - "fieldName": "searchLocationIds", - "caseSensitive": false, - "removeAccents": true } ] }, @@ -567,8 +682,7 @@ "fieldName": "poLineId", "targetTable": "po_line", "targetTableAlias": "poLine", - "tableAlias": "titles", - "tOps": "ADD" + "tableAlias": "titles" }, { "targetPath": ["poLineId", "purchaseOrderId"], @@ -578,22 +692,37 @@ } ], "index": [ - { - "fieldName": "acqUnitIds", - "caseSensitive": false - }, { "fieldName": "claimingActive", - "caseSensitive": false + "caseSensitive": true, + "removeAccents": false, + "sqlExpression": "(jsonb->>'claimingActive')", + "sqlExpressionQuery": "$" }, { "fieldName": "instanceId", - "caseSensitive": false + "caseSensitive": true, + "removeAccents": false, + "sqlExpression": "(jsonb->>'instanceId')", + "sqlExpressionQuery": "$" } ], "fullTextIndex": [ { - "fieldName": "acqUnitIds" + "fieldName": "acqUnitIds", + "caseSensitive": false, + "removeAccents": false + }, + { + "fieldName": "productIds", + "caseSensitive": false, + "removeAccents": false, + "multiFieldNames": "productIds[*].productId" + }, + { + "fieldName": "title", + "caseSensitive": false, + "removeAccents": true } ] }, @@ -612,8 +741,7 @@ "fieldName": "titleId", "targetTable": "titles", "targetTableAlias": "titles", - "tableAlias": "pieces", - "tOps": "ADD" + "tableAlias": "pieces" }, { "targetPath": ["poLineId", "purchaseOrderId"], @@ -623,56 +751,40 @@ } ], "index": [ - { - "fieldName": "format", - "caseSensitive": false - }, { "fieldName": "itemId", - "caseSensitive": false + "caseSensitive": true, + "removeAccents": false, + "sqlExpression": "(jsonb->>'itemId')", + "sqlExpressionQuery": "$" }, { "fieldName": "locationId", - "caseSensitive": false + "caseSensitive": true, + "removeAccents": false, + "sqlExpression": "(jsonb->>'locationId')", + "sqlExpressionQuery": "$" }, { "fieldName": "holdingId", - "caseSensitive": false - }, - { - "fieldName": "receivingStatus", - "caseSensitive": false - }, - { - "fieldName": "receivedDate", - "caseSensitive": false - }, - { - "fieldName": "supplement", - "caseSensitive": false + "caseSensitive": true, + "removeAccents": false, + "sqlExpression": "(jsonb->>'holdingId')", + "sqlExpressionQuery": "$" }, { "fieldName": "bindItemId", - "caseSensitive": false + "caseSensitive": true, + "removeAccents": false, + "sqlExpression": "(jsonb->>'bindItemId')", + "sqlExpressionQuery": "$" }, { "fieldName": "receivingTenantId", - "caseSensitive": false - } - ], - "fullTextIndex": [ - { - "fieldName": "comment" - }, - { - "fieldName": "receivingStatus" - } - ], - "ginIndex": [ - { - "fieldName": "displaySummary", - "caseSensitive": false, - "removeAccents": true + "caseSensitive": true, + "removeAccents": false, + "sqlExpression": "(jsonb->>'receivingTenantId')", + "sqlExpressionQuery": "$" } ] }, @@ -683,14 +795,18 @@ "uniqueIndex": [ { "fieldName": "purchaseOrderId_invoiceId", - "multiFieldNames": "purchaseOrderId,invoiceId", - "tOps": "ADD" + "caseSensitive": true, + "removeAccents": false, + "multiFieldNames": "purchaseOrderId,invoiceId" } ], "index": [ { "fieldName" : "invoiceId", - "caseSensitive": false + "caseSensitive": true, + "removeAccents": false, + "sqlExpression": "(jsonb->>'invoiceId')", + "sqlExpressionQuery": "$" } ], "foreignKeys": [ @@ -698,8 +814,7 @@ "fieldName": "purchaseOrderId", "targetTable": "purchase_order", "tableAlias": "orderInvoiceRel", - "targetTableAlias": "purchase_order", - "tOps": "ADD" + "targetTableAlias": "purchase_order" } ] }, @@ -709,21 +824,30 @@ "withMetadata": true, "uniqueIndex": [ { - "fieldName" : "name" + "fieldName" : "name" } ], "index": [ { "fieldName": "isDeleted", - "caseSensitive": false + "caseSensitive": true, + "removeAccents": false, + "sqlExpression": "(jsonb->>'isDeleted')", + "sqlExpressionQuery": "$" }, { "fieldName": "protectRead", - "caseSensitive": false + "caseSensitive": true, + "removeAccents": false, + "sqlExpression": "(jsonb->>'protectRead')", + "sqlExpressionQuery": "$" }, { "fieldName": "protectCreate", - "caseSensitive": false + "caseSensitive": true, + "removeAccents": false, + "sqlExpression": "(jsonb->>'protectCreate')", + "sqlExpressionQuery": "$" } ] }, @@ -743,7 +867,11 @@ ], "index": [ { - "fieldName" : "userId" + "fieldName" : "userId", + "caseSensitive": true, + "removeAccents": false, + "sqlExpression": "(jsonb->>'userId')", + "sqlExpressionQuery": "$" } ] }, @@ -812,20 +940,22 @@ "index": [ { "fieldName": "exportDate", - "caseSensitive": false + "caseSensitive": false, + "removeAccents": false } ], "uniqueIndex": [ { "fieldName": "exportJobId", - "caseSensitive": false + "caseSensitive": true, + "removeAccents": false } ], - "ginIndex": [ + "fullTextIndex": [ { "fieldName": "exportedPoLineIds", "caseSensitive": false, - "removeAccents": true + "removeAccents": false } ] }, @@ -857,7 +987,8 @@ "uniqueIndex": [ { "fieldName": "key", - "caseSensitive": false + "caseSensitive": false, + "removeAccents": false } ] }, diff --git a/src/main/resources/templates/db_scripts/title_table.sql b/src/main/resources/templates/db_scripts/title_table.sql index 308361ea..8efd6067 100644 --- a/src/main/resources/templates/db_scripts/title_table.sql +++ b/src/main/resources/templates/db_scripts/title_table.sql @@ -1,11 +1,14 @@ CREATE INDEX IF NOT EXISTS titles_title_sort ON ${myuniversity}_${mymodule}.titles - (left(lower(f_unaccent(titles.jsonb->>'title')), 600), lower(f_unaccent(titles.jsonb->>'title'))); + (left(lower(f_unaccent(jsonb->>'title')), 600), lower(f_unaccent(jsonb->>'title'))); CREATE INDEX IF NOT EXISTS titles_po_line_number_sort ON ${myuniversity}_${mymodule}.titles - (left(lower(f_unaccent(titles.jsonb->>'poLineNumber')), 600), lower(f_unaccent(titles.jsonb->>'poLineNumber'))); + (left(lower(f_unaccent(jsonb->>'poLineNumber')), 600), lower(f_unaccent(jsonb->>'poLineNumber'))); CREATE INDEX IF NOT EXISTS titles_receiving_note_sort ON ${myuniversity}_${mymodule}.titles - (left(lower(f_unaccent(titles.jsonb->'poLine'->>'receivingNote')), 600), lower(f_unaccent(titles.jsonb->'poLine'->>'receivingNote'))); + (left(lower(f_unaccent(jsonb->'poLine'->>'receivingNote')), 600), lower(f_unaccent(jsonb->'poLine'->>'receivingNote'))); CREATE INDEX IF NOT EXISTS titles_package_sort ON ${myuniversity}_${mymodule}.titles - (left(lower(f_unaccent(titles.jsonb->'poLine'->>'titleOrPackage')), 600), lower(f_unaccent(titles.jsonb->'poLine'->>'titleOrPackage'))); + (left(lower(f_unaccent(jsonb->'poLine'->>'titleOrPackage')), 600), lower(f_unaccent(jsonb->'poLine'->>'titleOrPackage'))); + +CREATE INDEX IF NOT EXISTS titles_no_acq_unit ON ${myuniversity}_${mymodule}.titles + ((lower(f_unaccent(jsonb->>'acqUnitIds')) NOT LIKE lower(f_unaccent('[]'))));