当前位置: 首页 > 工具软件 > MG4J > 使用案例 >

初试MG4J

傅丁雷
2023-12-01
按照网站提供的manual中的A Quick Tour of MG4J完成。

在mg4j的官方网站下载[url=http://mg4j.dsi.unimi.it/mg4j-2.1.1-bin.tar.gz]binary tarball[/url]和[url=http://mg4j.dsi.unimi.it/mg4j-deps.tar.gz]dependencies tarball[/url],解压在本地硬盘。

以搜索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.....
 类似资料: