Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add backend: ProQuest Federated Search Gateway #3991

Open
wants to merge 35 commits into
base: dev
Choose a base branch
from

Conversation

maccabeelevine
Copy link
Member

@maccabeelevine maccabeelevine commented Oct 7, 2024

The ProQuest Federated Search Gateway is an SRU API for searching across research databases licensed via ProQuest. It's old (docs last updated 2016) but still works and per ProQuest customer service:

The Federated Gateway is still in use ... There are no plans to discontinue it and we would be fine with them posting the VuFind code for integration for other customers.

On the plus side, it has a fairly rich CQL syntax for search. On the minus, there are no facets offered other than the constituent databases.

Implementation is patterned after the soon-to-be-deleted WorldCat backend as they both use SRU.

TODO

@maccabeelevine maccabeelevine marked this pull request as ready for review November 6, 2024 16:34
@maccabeelevine
Copy link
Member Author

Other than the TODOs, I think this is far enough to be worth a review. Also worth noting that there is no authentication config, it's simply IP-based access.

*/
public function getShortTitle()
{
return strip_tags($this->marcGetShortTitle());
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The strip_tags is temporary until #4004 is integrated.

@@ -0,0 +1 @@
<?=$this->render('RecordDriver/DefaultRecord/link-generic.phtml', compact('driver', 'lookfor') + ['type' => 'author', 'quoteQuery' => false]);
Copy link
Member Author

@maccabeelevine maccabeelevine Nov 6, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The only change here is overriding the default Author to author.

Copy link
Member

@demiankatz demiankatz left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks, @maccabeelevine -- this is off to a great start! Just a few (mostly minor) comments below, plus a couple of other notes:

1.) I notice that you've made some backward-breaking changes to the SRU backend. I'm not concerned about this since I don't think it's being used anywhere, but I did add a TODO to remind myself to update the changelog just in case when we merge this.

2.) It might be nice to add some tests once the code is stable, if time permits!

config/vufind/ProQuestFSG.ini Show resolved Hide resolved
languages/en.ini Show resolved Hide resolved
; and max_input_vars settings and/or adjust the Apache LimitRequestLine setting.
default_limit = 20
; limit_options = 10,20,40,60,80,100

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think we probably need to add the result_limit setting here to limit the depth at which users can paginate into the results. If I try to jump to the end of a long result set, it loads for a long time and finally fails with:

An error has occurred - TypeError: can't convert undefined to object

@maccabeelevine
Copy link
Member Author

1.) I notice that you've made some backward-breaking changes to the SRU backend. I'm not concerned about this since I don't think it's being used anywhere, but I did add a TODO to remind myself to update the changelog just in case when we merge this.

Yup I think that was your suggestion a while back, to not worry about those changes to SRU. If we have another use of SRU at some point and want some of the old code, Git will remember.

2.) It might be nice to add some tests once the code is stable, if time permits!

Of course, just added some that I thought were worthwhile. (And didn't add some others... :) But I can be convinced otherwise.)

@demiankatz
Copy link
Member

Thanks, @maccabeelevine, I agree that your tests seem like a worthwhile start; we can always expand later based on need. I just don't like adding new features without any tests at all. :-)

Looks like my comment above about the result_limit setting still needs to be addressed, but I think we're otherwise about caught up. If you want more eyes on this (and more thorough hands-on testing than I can currently manage), feel free to also request a review from @sturkel89.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants