Allow for an alternative search engine like Elasticsearch

Bug #1844418 reported by Blake GH
22
This bug affects 4 people
Affects Status Importance Assigned to Milestone
Evergreen
Confirmed
Wishlist
Unassigned

Bug Description

I am looking for a way to integrate an additional way to search the Evergreen database. PostgreSQL is great and versatile but I could imagine a scenario where we would allow the local server administrator to implement an alternative in some circumstances. For example:

opac_search_engine_def = [
'keyword => 'elasticsearch',
'title' => 'postgres',
'series' => 'postgres'
.....
]

staff_search_engine_def = [
'keyword => 'postgres',
'title' => 'postgres',
'series' => 'postgres'
.....
]

This could start small and slowly grow. The Elasticsearch team maintains a Perl API: https://www.elastic.co/guide/en/elasticsearch/client/perl-api/current/index.html

Therefore, I believe this could be used inside of Evergreen with the results coming back in the same compatible methods interpreted by the rest of the Evergreen code.

I understand that search is complicated and feature-rich. I realize this would create yet another piece of the stack but I think it could be worth it! There are a ton of built-in Elasticsearch features not the least of which is "Phrase suggester" https://www.elastic.co/guide/en/elasticsearch/reference/current/search-suggesters.html

Thoughts on this are welcome. Trying to get a conversation about it.

Tags: opac search
Blake GH (bmagic)
tags: added: opac search wishlist
Revision history for this message
Jane Sandberg (sandbergja) wrote :

I know the koha folks have an elasticsearch option too!

I haven't worked much with elasticsearch, but I've really enjoyed working with solr. It's really easy to tune queries. It also has a result grouping feature that might help out with implementing metarecord search (https://cwiki.apache.org/confluence/display/solr/FieldCollapsing). Also, "did-you-mean", sweet facets, and all that other fun stuff. CPAN has a solr library, but I haven't had a chance to kick its tires yet.

Revision history for this message
Blake GH (bmagic) wrote :
Revision history for this message
Bill Erickson (berick) wrote :

I've posted a short tech summary about my working branch to shed some light on what I'm doing with it.

https://git.evergreen-ils.org/?p=working/Evergreen.git;a=blob;f=docs/TechRef/elasticsearch.adoc;hb=refs/heads/user/berick/el-integrate-circa-3.4

Changed in evergreen:
importance: Undecided → Wishlist
status: New → Confirmed
Revision history for this message
Bill Erickson (berick) wrote :
Revision history for this message
Blake GH (bmagic) wrote :

Adding link to Bill's "new" Perl7 repo
https://github.com/berick/Evergreen/tree/elasticsearch-es7

Revision history for this message
Bill Erickson (berick) wrote :

Just a note I had some performance problems with ES7. I suspect it's a VM/Configuration issue. I have not yet researched at length. Sticking with ES6 for now locally. If anyone else uses ES7 (for anything) I'd be curious about the experience.

tags: removed: wishlist
Revision history for this message
Bill Erickson (berick) wrote :
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.