I use Tropy for my thesis. It has been 3 weeks.
I have a problem with the search function. When I search for a specific word, some of the answers in the list do not match my search.
The word is not present anywhere - not in the notes, tags, etc.
I use Tropy to classify texts. If for example I search for an exact word (e.g. in French “âge” or in Latin “aetas”) I get answers in which the word (or a similar word) is not found. I screen the example.
Screen 1. I am looking for “age”.
Screen 2. I search for aetates - aetatis is found in the note.
More simply, I would like to know how the search algorithm works - so I can better calibrate my queries.
I notice that the exact word search does not work. Usually there is a % match between the search and the answer.
Sometimes (picture 1) there is simply no match. This is what bothers me.
Tropy creates two full-text indices: one for all metadata values and one for all notes. Currently, a query in the quick search box is matched against both indices and the result contains all items with a match.
The full-text index is built using a unicode tokenizer which removes diacritics and uses the porter stemming algorithm which probably explains the aetates/aetatis match.
For the first example, the match could also be in the metadata. If you select the item in question in the project view and hit Ctrl/Cmd+C you copy a JSON representation of the item (and its notes) to the clipboard. You can then paste the full item here, then we can hopefully figure out why the term ‘age’ matched.
In general, the quick search functionality is powered by SQLite’s FTS extension; the query is handed to the extension almost as is and you can use some of the advanced features of the query language. In an upcoming release, we’re planning to provide more advanced search functionality via the UI. Currently you can only query the full-text index directly.