您正在查看 "Lucene" 分类下的文章
2007/10/07 22:34
从上次的百合校园代理(http://www.ibozhi.com/agent)的网站到这次Project的版上想
做类似的代理网站的帖子,下午在图书馆看了一个下午的书,把书的看到的结合自己的想
法,写成这篇帖子。
首先,我们不讨论要不要做类似百合校园代理的百合二手市场的项目,仅从分析的角度来
谈谈自己的想法,其次就是如果做那么百合二手市场的定位是怎么样,最后就是针对定位
从技术的角度说说。
如果要做百合二手市场,定位不好,肯定失败,或者运营很 |
2007/05/16 14:45
对于讲domain object 映射到关系型数据库中,hibernate等持久性框架做了很多的工作,使得业务逻辑只需要和hibernate等持久层进行交互,而不需要直接和具体的数据库进行交互。
这给程序员带来了很大的方便,在业务逻辑处理上,只要针对domain object就可以。
使用Lucene进行索引、搜索开发的的时候,最经常碰到的概念就是Document 和Field,在程序中一个不得不去做的事情,就是将领域对象的属性映射到document的field中去,在搜索的时候,还要根据document和field来构建DTOs(Data trans
|
2007/03/10 23:28
无意中在逛论坛的时候,发现了compass。吼吼~~~~还没有用,看看就知道是个好东西啊!!!!
在第二书店上买了Lucene In Action还没有到,就先看到这个了,自己以前还幻想着写一个类似compass的搜索引擎框架,当然是基于lucene的。呵呵~说笑了,当然我也没有这个本事写。
打算好好研究下compass,也对我手头的项目有用。
简单介绍下compass
compass是一个强大的、支持事务的Java搜索引擎框架。
compass支持声明式的将领域对象模型影射到底层的搜索引擎,对数据的改变和搜索引擎的索引 |
2006/08/10 21:38
package gt.test.lucene; import java.io.IOException; import org.apache.lucene.analysis.Analyzer; import org.apache.lucene.analysis.standard.StandardAnalyzer; import org.apache.lucene.document.Document; import org.apache.lucene.document.Field; import org.apache.lucene.index.IndexWriter; import org.apache.lucene.queryParser.ParseException; import org.apache.lucene.queryParser.QueryParser; import org.apache.lucene.search.Hits; import org.apache.lucene.search.IndexSearcher; import org.apache.lucene.search.Query; import org.apache.lucene.store.Directory; import org.apache.lucene.store.RAMDirectory; public class Test { /** * @param args * @author Goodtiger */ public static void main(String[] args) { try { Analyzer analyzer = new StandardAnalyzer(); |
2006/08/09 00:02
先看其中的Lucene部分,等看完了有时间的时候再去看Ajax的部分 这里面的Lucene的代码都是1.4.3版本的,但是我就要用2.0的包 就边看边把所有的代码都移植到2.0版本里面去 熟悉了代码,而且也熟悉了2.0和1.4.3版本中不一样的地方 看完之后再写总结吧 |
2006/07/21 00:15
1) 编写 Java 程序 MyIndexer.java,使用 JDBC 取出 MySQL 数据表内容,然后通过 org.apache.lucene.index.IndexWriter 创建索引。 2) 编写 Java 程序 MySearcher.java,通过 org.apache.lucene.search.IndexSearcher 等查询索引。 3) 实现支持中文查询及检索关键字高亮显示。
|
2006/07/16 10:38
利用 Lucene,在创建索引的工程中你可以充分利用机器的硬件资源来提高索引的效率。当你需要索引大量的文件时,你会注意到索引过程的瓶颈是在往磁盘上写索引文件的过程中。为了解决这个问题, Lucene 在内存中持有一块缓冲区。但我们如何控制 Lucene 的缓冲区呢?幸运的是,Lucene 的类 IndexWriter 提供了三个参数用来调整缓冲区的大小以及往磁盘上写索引文件的频率。 1.合并因子(mergeFactor) 这个参数决定了在 Lucene 的一个索引块中可以存放多少文档以及把磁盘上的索引块合并成一个大的索引块的频率。比如,如果合并因子的值是 10,那么当内存中的文档数达到 10 的时候所有的文档都必须写到磁盘上的一个新的索引块中。并且,如果磁盘上的索引块的隔数达到 10 的话,这 10 个索引块会被合并成一个新的索引块。这个参数的默认值是 10,如果需要索引的文档数非常多的话这个值将是非常不合适的。对批处理的索引来讲,为这个参数赋一个比较大的值会得到比较好的索引效果。 |
2006/07/16 10:37
Lucene的核心是索引。将数据转化成索引,通过搜索索引来获得结果。 通过使用IndexWriter对象来建立索引,使用IndexSearcher对象来搜索索引。 一个Query对象传递给IndexSearcher.search(). IndexSearcher.search() 返回一个含有document的对象的Vector的Hits 对象。 Document对象存储在Index中,留给程序员要做的事情有:将什么数据存入Index,并把数据转化为 Documents。读入数据文件用来初始化Document对象,将数据切割成块,并把块做为Field存入Document。 建立好Document以后,用IndexWriter写到Index。 一个查询可能很复杂,所以Lucene有一个工具来帮助你产生一个查询对象,叫做QueryParser。 这个对象会把类似你在因特网上的搜索引擎上输入的查询字符串生成一个查询对象。 很关键的一点是分析索引和搜索索引的analyzer必须是the same sort。 managing the process (instantiating the objects and hooking them together, both for indexing and for searching) selecting the data files parsing the data files getting the search string from th |
|
|