Issue report by Paul Smith
Product
FileMaker ProVersion
13Operating system version
MacOS 10.7.5Description of the issue
A find on a Minimal index field containing only single-word data takes the same time as a "No Index" field.Possibly related: http://forums.filemaker.com/posts/ac07f9929e
Test file available
Also verified issue on FMP12
It seems Find is not using the index, or the index is not populated properly.
Steps to reproduce the problem
1.) Create an field with minimal indexing2.) Create records with that field filled with *single word* unique values
- I used GetContainerAttribute ( Get ( UUID ) , "MD5" ) and a script to do this
3.) Create a script that times a find request on that field (of an existing value)
- I tried both the double-equal "exact match" as well as other find operators
- I used a variable of $start and $end for Get ( CurrentTimeUTCMilliseconds ) pre/post the "Perform Find" step.
4.) Compare results to similar process on "No Index" field
5.) Campare results to similar process on "Full Index" field
6.) Compare results to similar process on "Minimal Index" with a word-separator appended to the field data.
Expected result
I expect the same result (for me, about 8ms) as other Indexed finds.Actual result
I got the same result (for me, about 45ms & proportional to record count) as the "No Index" find.(All fields had "automatically create indexes" turned off.)
Exact text of any error message(s) that appear
Excerpt from Recovery Log (table called ShortTextField, an index is there):Timestamp,Message
"2014-07-01 20:32:18.190 -0400","Recovery of schema skipped"
"2014-07-01 20:32:18.190 -0400","Recovering indexes for table 'LongTextFields'"
"2014-07-01 20:32:22.738 -0400"," Rebuilt value index for field 'Data Index Minimal'; 100000 item(s) now exist, difference from old index is 0"
"2014-07-01 20:32:44.353 -0400"," Rebuilt value index for field 'Data Index Full'; 100000 item(s) now exist, difference from old index is 0"
"2014-07-01 20:32:44.354 -0400"," Rebuilt word index for field 'Data Index Full'; 264893 item(s) now exist, difference from old index is 0"
"2014-07-01 20:32:44.355 -0400","Recovering indexes for table 'NumberFields'"
"2014-07-01 20:32:50.848 -0400"," Rebuilt value index for field 'Data Index Minimal'; 100000 item(s) now exist, difference from old index is 0"
"2014-07-01 20:32:56.753 -0400"," Rebuilt value index for field 'Data Index Full'; 100000 item(s) now exist, difference from old index is 0"
"2014-07-01 20:32:56.755 -0400","Recovering indexes for table 'ShortTextFields'"
"2014-07-01 20:33:29.798 -0400"," Rebuilt value index for field 'Data Index Minimal'; 100000 item(s) now exist, difference from old index is 0"
"2014-07-01 20:34:22.444 -0400"," Rebuilt value index for field 'Data Index Full'; 100000 item(s) now exist, difference from old index is 0"
"2014-07-01 20:34:22.445 -0400"," Rebuilt word index for field 'Data Index Full'; 100000 item(s) now exist, difference from old index is 0"
"2014-07-01 20:34:22.446 -0400","Recovering indexes for table 'Overview'"
"2014-07-01 20:34:22.461 -0400","Recovery of custom function catalog skipped"
Workaround
Append a word-divider to the field.Use Full Indexing on the field.