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

MyISAM limitation and small Omeka collection search #845

Open
christopherthomson opened this issue Mar 28, 2018 · 4 comments
Open

MyISAM limitation and small Omeka collection search #845

christopherthomson opened this issue Mar 28, 2018 · 4 comments

Comments

@christopherthomson
Copy link

I have an Omeka site with search that returns no results for very common search terms. This has been raised before, and is, I believe, a feature of the MyISAM engine

Omeka Classic docs suggest that version 2.0+ uses InnoDB, but I see that MyISAM is still used in application > schema > search_texts.sql in version 2.6

Would switching to InnoDB here cause problems? I want to find the simplest way to work around the 50% threshold that effectively makes very common terms stopwords when using MyISAM. Thanks.

@zerocrates
Copy link
Member

The simplest option might just be adding IN BOOLEAN MODE to the search query. For the sitewide search, you can just choose the "boolean" radio button in the advanced options,

@christopherthomson
Copy link
Author

Thanks for your quick reply.

That would appear to improve search in some respects, but I get worse results in other respects. For instance, with boolean search if I add an uncommon search term in combination with my very common one I get the same results as for the very common term alone. It appears I get the union of these result sets, rather than their intersection. This is why I'm interested in working around the 50% threshold restriction on keyword search.

Hence I'm wondering does keyword search in fact still use MyISAM, and is it necessary, or could we instead use InnoDB?

@zerocrates
Copy link
Member

In boolean mode a leading plus (+) on a term should indicate the term is mandatory.

In answer to your question, yes, the keyword/fulltext search uses MyISAM. The Omeka version requirement for MySQL is very very low, much lower than would allow us to count on InnoDB's fulltext indexing support which is much more recent. If you personally have a MySQL server recent enough you can try converting search_texts to InnoDB, but it's very likely to remain MyISAM in the default distribution.

@christopherthomson
Copy link
Author

Thanks, I will do some more testing with boolean mode and investigate using InnoDB in a development environment.

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

No branches or pull requests

2 participants