Opened 14 years ago
Closed 13 years ago
#444 closed defect (fixed)
CSW filters don't match Dublin Core identifiers
Reported by: | rcoup | Owned by: | josegar74 |
---|---|---|---|
Priority: | major | Milestone: | v2.7.0 |
Component: | Catalog server | Version: | v2.6.3 |
Keywords: | Cc: |
Description
Dublin core records aren't retrievable via CSW GetRecords
queries using a filter on the dc:identifier
element.
- add a record (via template, upload, or CSW Transaction). See example attachment.
- head to http://localhost:8080/geonetwork/srv/en/test.csw and paste in the following query. Notice how you get 0 results.
<csw:GetRecords xmlns:csw="http://www.opengis.net/cat/csw/2.0.2" xmlns:gmd="http://www.isotc211.org/2005/gmd" service="CSW" version="2.0.2" resultType="results"> <csw:Query typeNames="csw:Record"> <csw:Constraint version="1.1.0"> <Filter xmlns="http://www.opengis.net/ogc"> <PropertyIsEqualTo> <PropertyName>dc:identifier</PropertyName> <Literal>12345678-1234-1234-abcd-12345678901a</Literal> </PropertyIsEqualTo> </Filter> </csw:Constraint> </csw:Query> </csw:GetRecords>
- Change the query to the following. Notice how you get 1 result, so the record is definitely there.
<csw:GetRecords xmlns:csw="http://www.opengis.net/cat/csw/2.0.2" xmlns:gmd="http://www.isotc211.org/2005/gmd" service="CSW" version="2.0.2" resultType="results"> <csw:Query typeNames="csw:Record"> <csw:Constraint version="1.1.0"> <Filter xmlns="http://www.opengis.net/ogc"> <PropertyIsLike wildCard="*" escape="\" singleChar="?"> <PropertyName>dc:title</PropertyName> <Literal>*Test*</Literal> </PropertyIsLike> </Filter> </csw:Constraint> </csw:Query> </csw:GetRecords>
- Using
identifier
,apiso:identifier
,dc:identifier
,Id
, etc as thePropertyName
doesn't make any difference. - ISO19139 records are returned (using a
PropertyName
of eitherapiso:identifier
,dc:identifier
, oridentifier
), it appears to be only Dublin Core records that are affected. - the
dc:identifier
is in the metadata DB table as theuuid
for the record. - using other filters (eg.
PropertyIsLike
) on thedc:identifier
element doesn't work either.
Attachments (2)
Change History (5)
by , 14 years ago
Attachment: | csw_dc_record.xml added |
---|
by , 14 years ago
Attachment: | remap_identifier_field.patch added |
---|
comment:1 by , 14 years ago
This appears to be due to the Identifier
field being mapped to fileID
, a field that is only present in ISO19139 records and not Dublin Core -- in Dublin Core, the field is stored as identifier
in the database.
However, the _uuid
field is available for both Dublin Core and ISO19139 and contains the correct value for both formats. I'm not sure if it is intended to work that way, but I have attached a patch regardless for config-csw.xml
to change the mapping.
comment:2 by , 13 years ago
Owner: | changed from | to
---|
comment:3 by , 13 years ago
Resolution: | → fixed |
---|---|
Status: | new → closed |
Change the mapping of Identifier from fileId to _uuid (see following comment)