Category Archives: Software Dev

Why regular expressions are not supported on index searches

People generally love the speed of index searches, but there are a few power users who wish they could also run regular expression (regex) searches against the index. The power of regex with the speed of the index, what’s not to like? From the support desk this week:

“I’d like to use a regular expression in an index-based search to find lines that simultaneously contain the keywords 230 and 2015, with the requirement that 230 must be surrounded by whitespace characters on both sides, and 2015 must be preceded by a whitespace character.”

The trouble is that indexes aren’t designed to handle regular expression searches. To understand why, let’s think about how an index works.

How does an index work?

Just like the index at the back of a book, the index for search data is basically a sorted list of terms taken from the source data. Anything that doesn’t look like a term, eg, a lone % sign, is stripped from the text. There are some additional data, such as term frequency, and term positions, but the terms aren’t stored in sentence order.

For example, the line of text:

file_locator work-efficiency calculation:(normal-speed*50%)=lots

Results in the following term database:

50
calculation
efficiency
file_locator
lots
normal
speed
work

An index search can quickly scan the term database for the individual search terms and link them back to the original document.

However, a regex, which is typically implemented as a directed graph of nodes and arcs representing transitions based on the input stream, requires the whole stream of text to work. It won’t work on a database of terms. Now, you could run a regex over the individual terms in the database (which we may implement in the future), but a regex spanning multiple terms is not possible.

Looking back at the original question, the end-user’s request doesn’t necessarily need to be a regex to work. You can use angle brackets to define the word boundaries and the NEAR operator for proximity. So, this search term would probably suffice:

<230> NEAR <2015>

Note: Notice how certain characters are stripped from the text, such as *, %, and -. That has the unfortunate side effect of preventing searches for those characters. The program will, however,  compensate, so a search for ‘work-efficiency’ still works, but it will also match ‘work efficiency’ or even ‘work#efficiency’.

I REALLY want to use a regex

Not all is lost. Most of the effort spent searching through PDFs and Word docs is spent converting the file formats into text. The actual string search is very fast. That conversion effort can be avoided with the Caching functionality, which stores extracted text in a local database for super quick retrieval in future searches.

So, if you need to run regex searches on a group of documents consider switching on Caching for lightning-fast searches, it’s not as quick as Index search but it’s pretty damn fast.

Crash Reports

Crash reports are incredibly useful, they allow us a detailed look at the state of the software at the time of the issue. Some of the most gnarly and difficult bugs have been resolved through the use of crash reports.

Crash investigation tool

But of all the crash reports we receive we only look at about 1-2%. Why?

We receive just under 2,000 crash reports a month. Guess how many of those are from legitimate installations of our software? Yep, around 1-2%. Those illegitimate crash reports are filtered out and never looked at because the software is designed to crash if the software detects program manipulation.

Fortunately, for legitimate users of our software crashes are very rare but if you do ever experience one please send it, every genuine report is investigated.

Version 2022 – Release

We’re really pleased to announce that the next version of FileLocator Pro and Agent Ransack is now available for download:

https://www.mythicsoft.com/filelocatorpro/download/

There’s lots of nice new features including:

  • New visual themes (including a Dark theme)
  • Improved indexing functionality, including a new automatic update scheduler, index groups, and indexing of archives (e.g. zip, tar etc).
  • Optical Character Recognition (OCR) functionality
  • Many more small updates and fixes

Continue reading →

Version 2021 Beta release available

I’m pleased to announce that the beta version for the next major release of FileLocator Pro and Agent Ransack is now available to download. This version has been a long time in the making and includes some really nice improvements, and will be a free upgrade for any recent purchases.

Highlights:

  • OCR text for scanned documents and images
  • Major improvements to indexing and index management
  • User interface updates, including a dark theme
  • Many more minor improvements

Please note that this is a beta version of the product and will contain bugs, although hopefully not too many. The help file has not yet been updated so if you have questions about specific features please ask Support.

Over the next few weeks more beta versions will be released along with improved documentation on the new features so please check back here for updates.

Download:

Full installation: 32-bit & 64-bit

Portable version: 32-bit | 64-bit

Continue reading →

Running a little late, sorry

Just in case you’re wondering what’s going on with FileLocator Pro and Agent Ransack we just wanted to share some updates.

There’s no denying that version 9 is running late. We had hoped to release it in 2019 but the Agent Ransack Pro/Lite mode work pushed it back quite a bit. There’s also been a lot of feedback from version 8, especially surrounding indexing, which has involved a major rework of how indexing works internally.

Indexing in v9 will include an option for real-time updates, the ability to group indexes together, and also precise search options, including search by Name, Size, Date, Type, and Location. A sneaky preview screenshot also shows that the indexing history is much more accessible to help diagnose and resolve any indexing issues.

One other thing you’ll probably notice from the screenshot is that there is now an improved dark theme for v9, a very common feature request.

Don’t worry if indexing isn’t an important feature for you as there’s plenty of other new functionality coming in v9, which we’ll be sharing over the next few months.

At the moment the expected release date is Apr 2021 but whatever the actual date is all v8 purchases made now are guaranteed to work for v9.

Agent Ransack 2019

Agent ransack 2019I’m pleased to report that Agent Ransack 2019 is now available for download.

Agent Ransack download page

This is a major new release for Agent Ransack and completes a big internal project to build Agent Ransack and FileLocator Pro from the same source tree. As I said in the Lite Mode post

Maintaining separate code branches for the Pro and Lite version is not an efficient way to develop the products. Over time the code diverges enough that it becomes harder and harder to apply patches from the Pro version to the Lite version. The loser in this patching battle is invariably the Lite version. Version 8 of FileLocator Pro has received nearly fifty enhancement updates since its release in 2016. The Lite version? Five.

So Agent Ransack will now be benefiting from the same update schedule as FileLocator Pro. Here’s just some of the new features that are now available in the Agent Ransack:

  • High DPI support
  • Faster file list loading, especially with ‘sticky’ sort.
  • Improved PDF searching
  • Updated language files
  • Dedicated portable installer
  • Freely available MSI files for unattended installations
  • and many small fixes

Probably the most prominent change you’ll notice is when you start Agent Ransack for the very first time, you’ll be asked if you want to try the Pro features:

You can, of course, just click ‘Lite (free)’ if you want to continue using Agent Ransack for free but if you are curious about what the Pro features might offer you can switch them on for the trial period. After the trial period has elapsed you can either switch back to the free Lite mode or pay for a Pro license.

As always, if you have any opinions on this change please let us know at: support@mythicsoft.com

 

Software Piracy

I was looking at a recent error report and surprised to see included in the error report a screen shot of a software pirate at work. The miscreant appears to have been trying to figure out why a crash was occurring with the license checks removed:

It’s not the first time I’ve seen such screenshots but it’s a useful reminder of how hard people work on tasks that, consciously or not, undermine the  structure of the company and the ability to support and improve the very products they, the pirates, want to use.

Continue reading →

Version 8 – Feature Complete

Back in Apr 2016 when I introduced version 8 of FileLocator Pro I ended with a ‘Roadmap’ of planned features for version 8:

  • Customizable columns – the ability to add/remove columns and column options such as Author or Comments.
  • Document preview – WYSIWYG view for the most common document formats.
  • Thunderbird email searching.
  • Allow file criteria to be included in Persistent Search Filters.
  • Support for WPD attached storage (e.g. Phones).

The list was based on customer feedback and contained features I knew people wanted and would be disappointed weren’t in the initial release. I’m pleased to say that with build 2878 of FileLocator Pro the last of those promised features has been implemented. Over the last few years there’s been a lot of really nice new features added to the product which weren’t on the list but honouring the promises on the list was a major focus of the development efforts.

Continue reading →

Lite Mode

If you’ve been paying attention to the release history of FileLocator Pro you may have spotted a new feature “Ability to switch to ‘Lite’ mode without installing separate product”, ie you can install FileLocator Pro but switch to FileLocator Lite functionality with just a few clicks.

It’s quite a major change and it’s going to affect the way we develop and distribute the Lite and Pro versions of the product. Rather than have a separate Lite product we’re going to be switching to a unified product that can switch Pro functionality on/off as required.

Continue reading →

Long Path Support

Support for long paths (ie paths greater than 255 characters) has been an increasingly requested feature and so I’m really pleased to see it added to the latest version of FileLocator Pro. Since FileLocator Pro does sometimes rely on the Windows shell for functionality such as file context menus it’s possible that, until Windows fully supports long paths, not every aspect will function perfectly but any issues should be the exception and not the norm.

File paths in Windows are more complicated than most end users realise but fortunately Windows hides much of the complexity, if you’re interested in some of the inner workings I recommend you read this blog post: DOS to NT: A Path’s Journey.

Although Microsoft has been adding long path support to Windows 10 it’s actually quite a difficult problem. Many third party applications have the value (commonly called MAX_PATH) hard coded since the Windows API documentation specifically refers to it. Therefore it’s potentially troublesome for Windows 10 to simply switch on long file support by default, those third party applications not expecting paths longer than MAX_PATH might start crashing with buffer overflows, or worse if the overflows are maliciously targeted.

Please try out the long path support in FileLocator Pro and, as always, if you find any problems please report it to Tech Support.