Am 12.12.2017 um 15:58 schrieb Sergey Bodrov:
Can you explain where full-text search does not work properly? I need
an example to work with, give detailed instructions how to reproduce
this error.
It can find wrong pages, where no keywords in page body. For example -
'writeln' in rtl.chm
I don't sure, where exactly problems was, but defenitely something
wrong was in WLC compressed integer reading funtion. Maybe also in WLC
chunks reader.
OK I see now: If I load rtl.chm into lhelp, go to page "Search" and type
"Writeln" the current version finds a lot of pages, but the word
"Writeln" is not contained in them. With your lhelp, on the other hand,
it looks like all pages are correct and have the word "WriteLn" somewhere.
I compared your chmFiftiMain with the current FPC-trunk version and
found the main difference in ReadWLCEntries. After copying your routine
into the trunk unit I get the same search result in my LHelp as in your
LHelp. Great!
If you don't mind I'll write a bug report for this part of your code.
But a question before doing so: The original function ReadWLCEntries
returns a TChmWLCTopicArray, you put this into a var parameter and
return a boolean value. But later you ignore the function result. Is
there a special idea behind this?
I did not look into this feature in detail yet: Should full-text
search work for any chm file, or must a full-text index be
prepared when the file is written? In the latter case, can you
provide a sample chm file suitable?
Full-text search works only when compiled into CHM. It also possible
to create external full-text search index for CHM without embedded
index, but this not yet implemented.
Does your code write the full-text index? Or is it already contained in
the current trunk version of chm?
--
_______________________________________________
Lazarus mailing list
Lazarus@lists.lazarus-ide.org
https://lists.lazarus-ide.org/listinfo/lazarus