Plain Text Advanced Search?

edited July 19, 2018
I am switching from Mendeley to Zotero, and I'm finding one of the major disadvantages is the search capability in Zotero, and it seems like it could very easily improved upon by offering a simple text-based advanced search with boolean operators.

I'm first asking if this feature already exists, and I'm just not aware. If not, I would like to find out how I could strongly encourage having it added to the roadmap.

I provide two examples to explain the utility of this feature.

One example:

In Mendeley, I could simply run a search like "author:Fang" by typing into the search box.

In Zotero, I have to click the magnifying glass, then find "Creator" in the menu, and then type "Fang". This takes MUCH longer.

Another example:

I refer to a Latex document that I wrote some time ago. It's relatively easy to look at a citation and construct a string like this "Ropel2005 OR Freed1976 OR Jeschke2013 OR Nussinov2016 OR Stillman1980a OR Shapiro2011a OR Simoncelli1996"

In Mendeley, this pulls up a list of the citations.

In Zotero, I have to click the magnifying glass, find "Extra" in the list, then copy and paste, then press "+", then find "Extra" again and repeat seven times.
  • In Mendeley, I could simply run a search like "author:Fang" by typing into the search box.
    In Zotero you'd just switch the search to "Title, Creator, Year" from the drop-down in the search bar. You might get a few extra matches from the title part, but I wouldn't think that'd be a big problem.
    I refer to a Latex document that I wrote some time ago. It's relatively easy to look at a citation and construct a string like this "Ropel2005 OR Freed1976 OR Jeschke2013 OR Nussinov2016 OR Stillman1980a OR Shapiro2011a OR Simoncelli1996"
    This would require an advanced search in Zotero, but I'm not really understanding when you'd do a search like this. What's the use case for matching these all in one go?

    The search bar will likely gain some additional functionality in future versions, but neither of these seem like they'd hold you back too much. (And as far as I know Zotero's advanced/saved search functionality is way more powerful than what Mendeley offers.)
  • (To clarify for the second example, while you can't currently use booleans in the search bar, you can match Extra by just using "All Fields & Tags" mode. But that's also only if you need to match a citation key stored in Extra. You can of course just type the author and year in "Title, Creator, Year" mode as well.)
  • but it seems pretty clear that allowing basic text-based advanced search is faster for advanced users, no?

    Especially boolean searches involve a _lot_ of clicking in Zotero.

    Obviously somewhat depends on how difficult this is to implement, but I don't think there's much of a question that it'd be desirable.
  • but it seems pretty clear that allowing basic text-based advanced search is faster for advanced users, no?
    For sure — it just sounded like in this case @jmfranck might be overcomplicating things by trying to exactly replicate the way it works in Mendeley.

    In terms of implementation difficulty, it depends.

    I think it'd be trivial to support boolean logic based on the existing search modes — e.g., "smith AND (1980 OR 1982)" in "Title, Creator, Year" mode.

    A field-based approach would be more complicated because of UI issues, since 1) it'd have to somehow interact with, override, or supplement the existing search modes (e.g., what happens if you type "publisher:harcourt" in "Title, Creator, Year" mode?) and 2) there are a ton of fields in Zotero, and we'd want to provide a search UI that autocompleted those and turned them into bubbled labels.
  • (And related to 2, we'd want to support localized field names, so just "publisher:foo" isn't an option.)
  • I absolutely appreciate the comments from @adamsmith, and I think that he gets the spirit of my comments.

    The searches that I'm trying to do are quite reasonable, actually.

    Say you have a latex document with a list of citations. You want to bring them all up, so you can see at a glance which one you were thinking about. In this case, searching one by one doesn't make sense, because each corresponds to copying and pasting from another window, which takes time. Again, this is just one small example that I provided, I'm sure people could think up many more.

    Perhaps a more basic option:

    Say I have 200 articles by author A, and 50 by author B, and I'm looking for an article published by authors A AND B. I can do that probably 5x faster if I'm allowed to do it from the basic search box with clear text rather than have to bring up the advanced search window and construct the search that way.

    Specifically responding to the comments from @dstillman, I am more than willing -- asking, if fact -- how I can "not overcomplicate my searches" by doing them the "Zotero way," but I have tried and can't figure out how to do that.

    I have a relatively large library, and I find that the basic searches return a lot of noise.

    As to the power of the advanced search: Honestly, it doesn't really matter how powerful a search is if you need to click through many buttons and menu options to implement it.

    My options currently seem to be using the basic searches and getting tons of noise, or spending a full minute each time I want to click through the options for an advanced search.

    Implementing simple boolean logic in the basic search boxes seems like a MUCH better way to go.
  • Say I have 200 articles by author A, and 50 by author B, and I'm looking for an article published by authors A AND B. I can do that probably 5x faster if I'm allowed to do it from the basic search box with clear text
    And you can. Just type both of their names in the search bar in "Title, Creator, Year" mode. You'd only get noise if one of the names also appeared in the title of one of the articles by the other author or was a substring of another co-author's name.

    The LaTeX example still strikes me as fairly esoteric, but you can open the Advanced Search window with a single click and then, if you like, do the rest entirely with the keyboard: select a search condition (e.g., "Creator") by typing the first few letters ("cr" would suffice) with the drop-down selected, Tab over to enter a value, and press Shift-Enter to add a new row. (It would probably be a nice improvement to make a new row default to the same condition as the previous row.)

    To be clear, I'm not saying that additional functionality in the search bar wouldn't be useful, and, as I say, we can probably add boolean logic easily. These things just aren't common requests (or, at least in the case of boolean logic, we would've done it years ago).

    One somewhat common request we do get, for what it's worth, is to be able to use a combination of "AND" and "OR" in a single advanced/saved search. That's currently possible only by using a nested saved search. We'll address that in the UI at some point, but supporting boolean logic in the search bar could satisfy at least some of that demand (and more if labels are implemented).
    As to the power of the advanced search: Honestly, it doesn't really matter how powerful a search is if you need to click through many buttons and menu options to implement it.
    Well, that's certainly not true. You can easily construct all sorts of searches in Zotero that simply aren't possible in Mendeley, and you can turn those into saved searches, which Mendeley doesn't support at all.
  • FWIW, I'd be very pleased with a simple boolean search in quicksearch and would definitely use that. The way I understand it, that'd also satisfy the LaTeX example above (with the author example de facto possible already as you point out).

    I can see the appeal of the field-shortcuts in searches (which is why they're supported by most good online academic databases) but I'd very much doubt they'd see much use.
  • The one other thing I would personally use a ton in quick search is year ranges:
    1990-1999

    Probably the single most common task I do searching is to list authors them sort by date to get to the decade I know a paper is in but can’t remember.
  • @bwiernik Even better would be a way to enter a year and search +/- n years.
  • It would also be great to formulate and retain as saved searches complete SQL queries or API scripts. Say, Biblioscape can do it and it is super convenient because this approach gives access to full regex and all its power. This would also be great for analysis and group management. The same engine could be used for batch editing.
Sign In or Register to comment.