Jump to content

I need a slick algorithm


This topic is 7504 days old. Please don't post here. Open a new topic instead.

Recommended Posts

I'm wondering if anyone can point me to a really clever use of the Find. My problem is an 11,000 record database of book titles (plus ISBN, author, various note & keyword fields). I need to be able to create a fast fuzzy search routine that will zero in on a title in many ways. If I give the user a global to insert find criteria, then click a button that activates a find script, I am partway there. What I need is how to make the script do a fast job. I have been thinking of various concatenation and calculation fields to search, but nothing is quite right.

Typically, the user would have someone on the phone rattling off book titles. She needs to be able to keep up with this. We are currently using an old DOS inventory system (ACCPAC) I am trying to replace with FM. ACCPAC does have a remarkable product search algorithm I have been unable to either acquire or reverse engineer. Here's an example. Say you need to find the book title "Gone with the Wind". Entering initials, key words, misspelled words will all find it, as:


Gone Wind

Goan wit wend

In addition, it will return a weighted list, with most probable first, then next most, etc. It does this as fast as one can type.

If our customers would be so kind as to give us lists of ISBNs instead of titles, there would be no need for this!

I know this kind of thing has been solved many times, with many kinds of software (I've even been toying with creating the old Soundex algorithm in FM!). I'm hoping that there exists a clever FM solution that is close to what I need & modifiable.

Steve Brown

Link to comment
Share on other sites

This may be what you are looking for. It's currently limited to 50 characters, but easily expanded by adding to the 'split' and 'relevance' fields. This is a tweaked version of a file LaRetta created. As such I never took the time to remove the superfluous components such as the 'Search' button, which is not necessary since the results are displayed via relationship and therefore only require the record to be exited.

Feel free to email me if you have questions about it.


Link to comment
Share on other sites


The original file, posted by LaRetta, with a CopyAllRecords script (or am I dreaming) could also be useful here.

In order to succeed, you'd need to play on the right side and the left side of these relationships.

The Right Side could be splitted into multi words (or starting characters as your GWTW) and a multi line field, so that you use this field as a match key.

You could do the same on the left key, so that your index field won't be too heavy to store.

The tedious part, from your example could be the misspellings. I played with a file sometimes ago, but it was really difficult to set and wouldn't ensure a 100% result.


Happy New Year.

Link to comment
Share on other sites

Many thanks to Queue, Ugo and LaRetta. It looks like a combination of these two attachments may be just what I need. Now I'll be spending the next three months slowly figuring out how they work!

Incidentally, Ugo, I got your example from the attachment link in the 6-30-03 thread you reference. In the text of that thread, in your last post, you say "Done. Attachment updated. You're right. It's kind of more logical this way." But there is no new attachment link in this post. The link exists in the earlier post. You may have made the improvement you mentioned to the attachment that comes down that earlier link, but I need to make sure. The calcs are intimidating enough without trying to figure out a calc that is subtly different than I think it is! The file name is SpellCheckerv4.fp5.

Steve Brown

Link to comment
Share on other sites

This topic is 7504 days old. Please don't post here. Open a new topic instead.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.