04/19/2000 New version of swish-e for phrase search (see README-PHRASE)
Download it from http://www.boe.es/swish-e
Fixed in swish-e-1.3.2-PHRASEg:
- Added more free() calls. Better use of memory
- Added external filter option from Rainer Scherg. This option caused
me some problems with the recursive function printfile in solaris (not
in linux). This was because of the use of "char filtercmd[MAXSTRLEN]"
that was allocated each time in stack. To avoid this, I have rewritten
the code to implement an array aproach instead of a recursive binary
aproach. No more stack corruptions in this fucntion.
- Fixed a buffer overrun in array stopList. Look at the old addStopList
function and stopList array in hash.c.
- Better compression schema for integers. This is specially important
because word postions are stored as integers. I think that old compress
function was using a null extra byte. Now, compress is also a macro for
- Some modifications to docprop.c to make the file index portable.
Now, integers are stored using the compress function.
- Added sorting of results by property using -s option. You can
show some properties in your results list and sort the results by
another(s) properties, regardless if they are or not in your result
swish-e -w word -f index.file [-p prop1 ...] [-s propn ...]
The sort is based on qsort and strcasecmp (stricmp in Windows).
- Added the option of showing results begining at the nth position
(option -b) based on the code from Scott Schultz. For Example
swish-e -b 20 -m 15 -w word -f index.file
This may show 15 results starting at the 20th element.
- Improved "or result" function (faster merges of long results).
Specially useful when stars are used (Example: a* or b*)
- Phrase delimiter char changed to "
Remember that you need to reindex your data.
I think that this is a quite stable version but, since I have
rewritten an add many functions, let me know if you find any problem.
NOTE about gcc 2.8.1:
I have experimented some strange problems with gcc 2.8.1
and solaris when using fputc, fseek and fgetc. I have workarounded
them using uneeded calls to ftell and fseek. Anyone heard about this?
Is a bug of gcc 2.8.1 for solaris or just a gcc 2.8.1 bug?
This is the workaround:
>From fputc(fp,c); ** Do not write anything but no error reported
To j=ftell(fp); fseek(fp,j,0);fputc(fp,c); ** Writes c!!!
No problems with gcc 18.104.22.168 in linux
Waiting to hear from you
Jose Manuel Ruiz Ramos
Received on Wed Apr 19 07:49:16 2000