It does look like some work on the PostgreSQL end would be helpful, but I'd like to point out that it is not the only possible approach.
We could work around the Full Text Search behavior by "normalizing" the users search and the terms in the database in a way that preserves punctuation and won't be ignored by the Full Text Search, for example, changing a plus to something unlikely to appear otherwise such as egpunctplus. Obviously this isn't ideal, but if it is easier than making the change to PostgresSQL it might be worth considering. (We might consider limiting this behavior to subject fields and subject searches–losing punctuation in a keyword search is to be expected, but being able to do an exact search for a subject heading is important.)
And while we can't completely solve the problem without addressing search, we could avoid the problem in the case where the user is clicking on a linked subject heading. Currently linked subject headings (and linked authors) link to a regular search. An alternative approach would be handle this like a relational database: each subject heading (or author name) would have a unique ID and tables in the database would provide links between records and the subject headings that appear there. The advantage of this approach would be that it would be completely immune to problems with search and would support pearl growing, an approach that can easily fail now. One of the disadvantages is that it would do nothing to fix the problem with search.
One way or another, I think this is an important issue. We know that the vast majority of subject headings will be drawn from LCSH so we should make an effort to make sure Evergreen works with that vocabulary.
It does look like some work on the PostgreSQL end would be helpful, but I'd like to point out that it is not the only possible approach.
We could work around the Full Text Search behavior by "normalizing" the users search and the terms in the database in a way that preserves punctuation and won't be ignored by the Full Text Search, for example, changing a plus to something unlikely to appear otherwise such as egpunctplus. Obviously this isn't ideal, but if it is easier than making the change to PostgresSQL it might be worth considering. (We might consider limiting this behavior to subject fields and subject searches–losing punctuation in a keyword search is to be expected, but being able to do an exact search for a subject heading is important.)
And while we can't completely solve the problem without addressing search, we could avoid the problem in the case where the user is clicking on a linked subject heading. Currently linked subject headings (and linked authors) link to a regular search. An alternative approach would be handle this like a relational database: each subject heading (or author name) would have a unique ID and tables in the database would provide links between records and the subject headings that appear there. The advantage of this approach would be that it would be completely immune to problems with search and would support pearl growing, an approach that can easily fail now. One of the disadvantages is that it would do nothing to fix the problem with search.
One way or another, I think this is an important issue. We know that the vast majority of subject headings will be drawn from LCSH so we should make an effort to make sure Evergreen works with that vocabulary.