小弟最近开发一个站内搜索模块,需要查询的信息在站内资源文件中,比如有部分文本信息在 .doc 或 .txt 文件中。如果用户每次查询都去做同样分析工作我觉得太浪费时间和资源。所以小弟准备将已经查询到的文件信息与关键词相对应,存放到一个特有的磁盘文件中,形成目录索引,以提高搜索效率。
现在比较迷惑的是,到底是用文件数据库(如:Lucene)还是是用嵌入式数据库(如:Oracle 的 JE),他们之间区别是什么,选用的理由是什么(比如是出于线程安全考虑,分布式考虑等等)。请各位大侠不吝赐教,小弟感激不尽!
现在比较迷惑的是,到底是用文件数据库(如:Lucene)还是是用嵌入式数据库(如:Oracle 的 JE),他们之间区别是什么,选用的理由是什么(比如是出于线程安全考虑,分布式考虑等等)。请各位大侠不吝赐教,小弟感激不尽!
因此Lucene最好做索引和搜索工作,存储可交给数据库,或者直接存成物理。
线程安全两者都差不多,分布式可能是数据库占优。上述分析都是基于性能考虑的。如果站内要搜索的数据库不是很多,就选用楼主所说的嵌入式数据库吧。
lucence是专门的全文检索工具,而且是开源的,你可以改它的代码。如果选oracle,万一某种文件格式他不支持就惨了。4楼已经说的很清楚了。我给个oracle全文检索的参考连接吧:http://epub.itpub.net/4/1.htm