Islandora-Labs / islandora_solr_collection_view

This replaces the browse display provided by Islandora collection objects with a View, providing enhanced customization and performance.
http://islandora.ca/
GNU General Public License v3.0
3 stars 4 forks source link

Expand Filter Criteria Operators List? #20

Closed McFateM closed 6 years ago

McFateM commented 6 years ago

We've recently built some relatively sophisticated Solr collection views in Digital Grinnell, but just found that one family of views is not working as we expected. The issue is with objects that are shared between two or more collections. It appears the issue is in our views' Filter Criteria where we enforce a clause like this:

Islandora Solr: RELS_EXT_isMemberOfCollection_uri_s (= info:fedora/grinnell:kleinschmidt)

However, what I really need is a clause like this:

Islandora Solr: RELS_EXT_isMemberOfCollection_uri_ms (Contains info:fedora/grinnell:kleinschmidt)

Unfortunately, the only available operators in these filter criteria appear to be "Is equal to" and "Is not equal to".

Any idea how/where I can add a "Contains" operator to the available filter criteria? Thanks.

ajstanley commented 6 years ago

Unless I'm misreading (its happened before!) you should be okay with using RELS_EXT_isMemberOfCollection_uri_ms instead of

RELS_EXT_isMemberOfCollection_uri_s.

The single valued field won't return all applicable values but the multivalued will.

~ Alan

On Fri, Mar 16, 2018 at 6:40 PM, Mark McFate notifications@github.com wrote:

We've recently built some relatively sophisticated Solr collection views in Digital Grinnell, but just found that one family of views is not working as we expected. The issue is with objects that are shared between two or more collections. It appears the issue is in our views' Filter Criteria where we enforce a clause like this:

Islandora Solr: RELS_EXT_isMemberOfCollection_uri_s (= info:fedora/grinnell:kleinschmidt)

However, what I really need is a clause like this:

Islandora Solr: RELS_EXT_isMemberOfCollection_uri_ms (Contains info:fedora/grinnell:kleinschmidt)

Unfortunately, the only available operators in these filter criteria appear to be "Is equal to" and "Is not equal to".

Any idea how/where I can add a "Contains" operator to the available filter criteria? Thanks.

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/Islandora-Labs/islandora_solr_collection_view/issues/20, or mute the thread https://github.com/notifications/unsubscribe-auth/AAeNJ-JVnZN49bf5Gc5YMEoak91hLW1gks5tfDE6gaJpZM4SueV8 .

-- Alan Stanley Lead Developer and Training Specialist Agile Humanities

McFateM commented 6 years ago

Thanks for the quick reply Alan. I tried that earlier but failed because our Solr schema slurps so much and creates so many fields I could never get my change to post properly. I will try making the change in code and see what happens instead.

Sent from my iPhone

On Mar 16, 2018, at 4:54 PM, Alan Stanley notifications@github.com<mailto:notifications@github.com> wrote:

Unless I'm misreading (its happened before!) you should be okay with using RELS_EXT_isMemberOfCollection_uri_ms instead of

RELS_EXT_isMemberOfCollection_uri_s.

The single valued field won't return all applicable values but the multivalued will.

~ Alan

On Fri, Mar 16, 2018 at 6:40 PM, Mark McFate notifications@github.com<mailto:notifications@github.com> wrote:

We've recently built some relatively sophisticated Solr collection views in Digital Grinnell, but just found that one family of views is not working as we expected. The issue is with objects that are shared between two or more collections. It appears the issue is in our views' Filter Criteria where we enforce a clause like this:

Islandora Solr: RELS_EXT_isMemberOfCollection_uri_s (= info:fedora/grinnell:kleinschmidt)

However, what I really need is a clause like this:

Islandora Solr: RELS_EXT_isMemberOfCollection_uri_ms (Contains info:fedora/grinnell:kleinschmidt)

Unfortunately, the only available operators in these filter criteria appear to be "Is equal to" and "Is not equal to".

Any idea how/where I can add a "Contains" operator to the available filter criteria? Thanks.

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/Islandora-Labs/islandora_solr_collection_view/issues/20https://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_Islandora-2DLabs_islandora-5Fsolr-5Fcollection-5Fview_issues_20-253E&d=DwQFaQ&c=HUrdOLg_tCr0UMeDjWLBOM9lLDRpsndbROGxEKQRFzk&r=PQglHQe-EzyZqJOuOVcmU0OZ6bg-89msSPuqyNlQr28&m=ryAg9RK91Db2mJZJ4IwnQp77OMMsUtwLLl5BjsvyNmQ&s=J64YDZjt355ED2xlWCAxeHtjvaWdRXNl5swyrdicuJA&e=, or mute the thread https://github.com/notifications/unsubscribe-auth/AAeNJ-JVnZN49bf5Gc5YMEoak91hLW1gks5tfDE6gaJpZM4SueV8https://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_notifications_unsubscribe-2Dauth_AAeNJ-2DJVnZN49bf5Gc5YMEoak91hLW1gks5tfDE6gaJpZM4SueV8-253E&d=DwQFaQ&c=HUrdOLg_tCr0UMeDjWLBOM9lLDRpsndbROGxEKQRFzk&r=PQglHQe-EzyZqJOuOVcmU0OZ6bg-89msSPuqyNlQr28&m=ryAg9RK91Db2mJZJ4IwnQp77OMMsUtwLLl5BjsvyNmQ&s=ZFkxoVR_Z62_-gJlM2vz_D_QOFUwBK2ixi3MtdCcC8E&e= .

-- Alan Stanley Lead Developer and Training Specialist Agile Humanities

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHubhttps://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_Islandora-2DLabs_islandora-5Fsolr-5Fcollection-5Fview_issues_20-23issuecomment-2D373855371&d=DwMFaQ&c=HUrdOLg_tCr0UMeDjWLBOM9lLDRpsndbROGxEKQRFzk&r=PQglHQe-EzyZqJOuOVcmU0OZ6bg-89msSPuqyNlQr28&m=ryAg9RK91Db2mJZJ4IwnQp77OMMsUtwLLl5BjsvyNmQ&s=cZhVwdLuansyYktf0edz0k1lFcIXIb-i_3wHw9xsoec&e=, or mute the threadhttps://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_notifications_unsubscribe-2Dauth_AIFIwY-2Dq0V1I0KBgBnWzxYBgFl0GO8Slks5tfDSYgaJpZM4SueV8&d=DwMFaQ&c=HUrdOLg_tCr0UMeDjWLBOM9lLDRpsndbROGxEKQRFzk&r=PQglHQe-EzyZqJOuOVcmU0OZ6bg-89msSPuqyNlQr28&m=ryAg9RK91Db2mJZJ4IwnQp77OMMsUtwLLl5BjsvyNmQ&s=jU1LGDgvcuLrsNkzdUTM9vuKB54sHAh406PUG4Mmr_g&e=.

McFateM commented 6 years ago

It works! Changed my views in code to reference RELS_EXT_isMemberOfColleciton_uri_ms instead of ...uri_s, and as Alan indicated, it works properly. I had no idea that Solr multi-valued fields would work like this in a "Is equal to" relationship.

Closing this issue as resolved. Thanks all and take care.