Simple Search mistake? (Search returns all synonymized taxon records)

In Specify 7, our simple search will return all “synonymized records.” I am not entirely sure what this means, but in laymans terms no matter what we search our results include the same ~20 results. In our case, if you search a locality name, it gives you every mouse in our collection. If you search a dinosaur name, it give the same mice. Etc., etc. Has anyone with this issue been able to resolve it? We know that this is an issue that affects all databases with synonyms. You can see the issue demonstrated here: Simple Search Returns All Synonymized Taxon records · Issue #6783 · specify/specify7 · GitHub

Simple search in our database is completely unusable as well, and I think our problems are related to the issue as you are describing. :frowning: I often forget about it because it has never worked since we’ve adopted specify, but it is very confusing for lay users, especially because it cannot be removed entirely from the GUI in 7.

To my knowledge, Simple Search was user-configurable in Specify 6, but is not yet user configurable in 7, at least not in the front end. I am unsure whether the issues we experience can be fixed by altering configuration in Sp6, but @Grant or @bhumikagupta should be able to tell you.

When we search pretty much anything it just returns the record most closely matching the search term in the most granular table in which the term occurs (for example, searching “Amblema” doesn’t bring up lots that are identified as Amblema plicata, or lots identified as Amblema sp., it only brings up the genus record for Amblema in the taxon table, and then links 628 completely unrelated taxa in the taxon tree as well.

e.g. https://invertebrates.osu.edu/specify/simple-search/?q=amblema

It seems these 628 taxa get linked no matter what you search. That seems new to me… but I don’t use Simple Search often enough to know if and when the behavior changed.

see also https://invertebrates.osu.edu/specify/simple-search/?q=Ohio+River

Multiple collections requesting a fix will bump this up on the devs’ radar. They have been doing a bang up job this year in rolling out new features, so hopefully this gets fixed soon.

1 Like

Thanks! It’s good to at least know that there are other users experiencing the same issue, and it would really help if more people would report it…

Hi @PTRM_Paleo and @nfshoobs,

That is correct, Simple Search can only be configured from Specify 6 at this time. You can remotely connect to Specify 6 and modify the queries run by simple search which may resolve some or all of your issues @nfshoobs!

Simple Search requires the use of wild card characters to be used successfully. For example, searching for ‘amblema*’ returns all taxa and determined Collection Objects to any name in that genus:

https://invertebrates.osu.edu/specify/simple-search/?q=amblema*

Know also that when you are searching for something with a space in the name it is interpreted as two different search criteria. For ‘Ohio River’, you’ll want to put quotes around it:

https://invertebrates.osu.edu/specify/simple-search/?q=%22Ohio+River%22

Responding to the main issue that I believe you both are encountering (spurious synonym results in simple search), this is still being prioritized internally, but I have a solution to remove the always linked taxa.

From what I have gathered, the three Simple Search queries that are always displaying results no matter the search criteria are as follows (name and description from Specify 6):

  • Taxon Preferred Taxon – Old Taxa with their preferred names.
  • Collection Object Preferred Taxon – Collection objects with determined Taxon names and preferred Taxon names.
  • Collection Object Taxon (all synonyms) – Collection objects with determined Taxon and its synonyms

After connecting to the PTRM database using Specify 6, I was able to “deactivate” these three searches so they are not being run every time a query is made:

Once I completed that, I copied the modified Express Search Config app resource from my user into the ptrm user so you will also be able to see my configuration.

For @nfshoobs, the modified ExpressSearchConfig app resource you can add to your user is available here:
modified_expresssearchconfig.xml (25.5 KB)

Now searches with any query no longer result in these erroneous results (screenshot from ptrm):

Note: I’ve added details of this to the GitHub issue

Once this issue is properly resolved, we can re-enable these queries! I hope this makes searching a bit better for you both :smile:

@PTRM_Paleo, this is live in your database now! You will need to log out and log back in to see the changes.

1 Like

Thanks Grant!
Is there a way to make it so that Simple Search queries certain tables/fields but only returns results from a single table or subset of tables, rather than the whole set of tables being queried (like how setting a “base table” in the query builder limits results to the base table?)

Based on conversations I’ve had with colleagues and students here over the last few months, a basic problem with querying in Specify is that it exposes far too much complexity to users, who have no context to interpret results without an a priori understanding of the Specify Schema. (e.g. most users of biodiversity data imagine that when they search a biodiversity database, they are searching a flat table where 1. rows represent specimens or lots, 2. columns are fields 3. there are no duplicate rows. This is how it works on GBIF, iDigBio, Symbiota, Emu, Arctos, etc. Showing users a bunch of atomized records in tables is confusing.)

IMO this ties back in to a deeper issue with the Specify GUI: it’s very hard to get from the form view of a record in one table to the form view of a related record in another table without using the query builder as an intermediate step.

Tree and picklist tables in Sp7 allow users to query linked records via the find usages button in the form meta, ideally this option would be available in all tables, and it would have some customization options and be an optional xml element on the form outside of the form meta.

1 Like

Hi @nfshoobs,

Thanks for reaching out and for providing such thoughtful and detailed feedback. I really appreciate you taking the time to write it all out!

Simple Search Configuration

To answer your direct question: unfortunately, no, Simple Search can’t be configured to query certain tables but only return results from a different, single “base” table.

As you noted, Simple Search is designed to find matching text across a wide set of pre-configured fields and will return results grouped by the table where the match was found. If you configure it to search fields in the Agent table and the Determination table, it will show you results from both the Agent and Determination tables. There isn’t a way to tell it, “Search for this term in Agents and Determinations, but only show me the related Collection Object records.” For that level of control, the Query Builder, with its “base table” concept, remains the necessary tool.

User Experience and Suggestions

Your broader points about the user experience are appreciated. You’ve done a good job at describing a fundamental challenge for new users: the Query Builder does display the complexity of our relational database schema, which is very different from the “flat file” search common in other platforms like GBIF, iDigBio, or Symbiota. We have justified this complexity by the deep customizability Specify provides, but your point about making querying more intuitive for new users is a good one.

I think there is a lot of merit to:

  1. A more “object-centric” search that returns a flat list of specimens/lots.
  2. A universal “find usages” button to easily navigate between related records on any form.

In the next release, there will be a new button on every data form named “Linked Records”, which will let the user see relevant associated records to the one they are currently looking at (see the GitHub description here). We will expand more on this and provide official documentation in the coming weeks, but I hope this helps with that point. See the example below for ‘Agent’:

I think it would be great to open this up to discussion where other users can also comment and provide their input on this idea. Would you be willing to post them in the New Feature Requests category on the Speciforum? Thank you again for the feedback!

Grant,
This is what the forum is for isn’t it? :wink: I think being a member of a collaborative community like this is one of the big benefits of Specify.

Bummer that Simple Search cannot filter results by table like the query builder can. But I understand the limitation. I think many collections would benefit from a simple/express search that searches within the results of a stored query without showing that query to the user.

The linked records feature is awesome!!! That is exactly what I was thinking would be useful when I wrote the last paragraph in my comment above. I think that will go a long way in helping both new users and seasoned vets navigate their databases.

1 Like