初试MG4J

按照网站提供的manual中的A Quick Tour of MG4J完成。

在mg4j的官方网站下载 binary tarballdependencies tarball,解压在本地硬盘。

以搜索mg4j的javadoc文档为例,
首先为要搜索的文件建立一个collection

java it.unimi.dsi.mg4j.document.FileSetDocumentCollection -f HtmlDocumentFactory
 -p encoding=UTF-8 javadoc.collection D:\MG4J\mg4j-2.1.1-bin\mg4j-2.1.1\docs\*.html


因为搜索的是html文档,所以这里指定了HtmlDocumentFactory,并且直接写factory的名字不用加包名;指定的编码类型为utf-8;生成的collection文件名为javadoc.collection;D:\MG4J\mg4j-2.1.1-bin\mg4j-2.1.1\docs\*.html为要搜索的文件,如果还有可以直接在后面添加文件名。

运行后将生成javadoc.collection文件,这个文件就是一个包含要搜索的文件名的类型java实例序列化后的文件。

第二步,为要搜索的文件生成索引。

java -Xmx256M it.unimi.dsi.mg4j.tool.IndexBuilder --keep-batches
 --downcase -s 10000 -S javadoc.collection javadoc


如果collection很大有数百万的文档,就要调整java的内存,以满足索引快速生成索引。
--keep-batches是为了查看生成索引时产出的临时文件,可以去掉。
--downcase是忽略大小写,搜索的时候STRING和string是一样的。
-s 10000设置了批量生成索引的大小。
-S javadoc.collection指定了collection文件为javadoc.collection。
javadoc为索引文件的文件名前缀。

生成的索引文件为javadoc-title.*和javadoc-text.*

第三步,启动查询器进行搜索

java it.unimi.dsi.mg4j.query.Query -h -i FileSystemItem 
-c javadoc.collection javadoc-text javadoc-title


可以打开浏览器输入http://localhost:4242/Query进行搜索,Query类中内置了jetty可以提供web服务。也可以在命令行输入要搜索的词。

在运行上面的命令之前,一定要把dependencies tarball中的jar包加入到classpath中,才能正常运行。

我也试了在要搜索的html文档中加入了一些中文html文档,在搜索中文的时候还是有问题,搜索无法进行。

刚刚接触MG4J,还在阅读manual.....

你可能感兴趣的:(java,html,Web,浏览器,F#)