好消息:终于搞定一个全文检索引擎 - lucene(0分)

  • 主题发起人 主题发起人 yysun
  • 开始时间 开始时间
爽,确实爽!
 
[:)]速度还可以。满快的!
 
我现在用的那个太差了..
经常出现内存溢出和表达式太复杂的提示...
烦死了..
 
提个意见,比如我检索"SCSI",检索结果的最后2条返回的内容实在太多,
占了1页还多(1024*768的分辨率下),是否可以考虑加以限制?
希望大富翁越来越好:p
 
大家可以试验一下这个地址: http://search.delphibbs.com
 
现在大富翁每天进帖子3000个, 形成一个庞大的资料库。
配合全文检索, 我们有希望做成类似 google 的东东了。
有没有人能告诉我这个全文检索网站(速度如何?
http://search.delphibbs.com
 
起用新域名: http://search.delphibbs.com
 
yysun:
不如讲讲或者公开你那个全文搜索的方法?这样对大家都有所提高。
我现在用我自己新写的程序(没用任何第三方引擎):
标题搜索最快小于一秒,最慢16秒。
全文搜索最快1秒,最慢还是要一分钟。
感觉有点到头了的说。
 
以下是我这两天的结果:
按秒记:
非技术问题 按标题(bde) 按标题(odbc) 按全文(bde) 按全文(odbc) 按标题(jdbc) 按全文(jdbc)
myrich1.2 129 20 17 67 65
re3.1 17 25 11 116 116
myrich1.3 1 3 2 <1 3 11 58
看来关键时刻还得看YYSUN做的引擎了。
 
to 吴剑明:
其实孙老师公布的网址上就有源码和介绍:p
可惜我看不懂,因为是Java写的,我不懂java:(
估计改成delphi再加上适当的优化,速度还有相当大的提高余地。
我估计孙老师也还没将其改到Delphi。不然也不会只公布原网址:p
如果你确实很想知道方法,那就去看java的源码。
 
JAVA就JAVA,反正我也是写JAVA的。:)
代码在哪个URL?
 
自我下载 Lucene,用了3天(下班后的业余时间)改进了它的中文支持,
用了1天 建立了大富翁全文检索引擎 servlet,用了2天申请了一个新的 Web 空间。
这样,在一个星期左右,大富翁全文检索网站 http://www.richsearch.com 就面世了,
欢迎大家使用!
 
开始倒是想把 Lucene 改成 Delphi,但是发现不好办,原因就是 Lucene 使用了一个叫
JavaCC 的文法工具 http://www.metamata.com/javacc
http://www.javaworld.com/javaworld/jw-12-2000/jw-1229-cooltools.html
JavaCC 能把 BNF 转换成相应的 Java 语法分析类。比如,我们的查询语法的 BNF 是:
* Query ::= ( Clause )*
* Clause ::= ["+", "-"] [<TERM> ":"] ( <TERM> | "(" Query ")" )
用 JavaCC 就能生成 7 个 Java 类。这些类负责检验用户输入的语法和分词(Tokenize)。
Lucene 首先操作这些类,看用户输入的内容是否符合规范、做分词,然后再检索。
这么做的好处是定义语法非常方便,并且是的检索语法和检索引擎分离。
但是,因为我们没有 DelphiCC,只能硬改 JavaCC 生成 7 个 Java 类,万一语法变化,
JavaCC 生成新的 7 个 Java 类。所作修改统统作废。所以把它改成 Delphi 的意义不大。
Java 的好处是其核心为 Unicode,因此我们在中文处理上并没有太大的麻烦。
利用 Lucene 的大富翁全文检索可以做成 servlet,也可以做成 SOAP Server,
或者本机的一个 TCP Server/Service。
 
牛,真牛。
我提个建议,能不能公布用户查询的关键字排名。
 
yysun老板,出了个问题:
检索表达式: 浩瀚的工程-汉化Delphi所有的帮助文件,共检索到 1 个记录,用时 9262 微秒。

返回
里面没有列表。
 
谢谢,datm 这确实是个不大不小的 bug - 只检索到一条记录时,不会显示出来。
遍历一个数组,我竟然写成了 for(int ii=0;
ii<nn.length()-1;
ii++) 低级错误啊[:(]
这就改正!
另外,用户输入的检索词我已经保存下来,过一段时间可以整理出来。
 
呵呵,yysun的精神真值得我好好学习。
我只是对全文检索很感兴趣,但从来没想过去研究。所以搞了8,9的编程还是停留在控件的使用。
当然Windows编程才弄了2年。一个标准的实用主义者。
对了,为什么不把
http://www.shareware.net.cn/shareware_view.asp?id={53878364-C248-45B6-BDAC-F290A0C6227C}
改成:
http://www.shareware.net.cn/shareware_view.asp?id={53878364-C248-45B6-BDAC-F290A0C6227C}&amp;func=author
 
帖子数据是转入文本?XML存储的吗?不会每个帖子保存一个文件吧?
 

Similar threads

后退
顶部