- 浏览: 53645 次
- 性别:
- 来自: 北京
文章分类
最新评论
ZoieSystem是可以使用spring进行配置的,一个典型的配置如下:
<!--An instance of a DataProvider:
FileDataProvider recurses through a given directory and provides the DataConsumer
indexing requests built from the gathered files.
In the example, this provider needs to be started manually, and it is done via jmx.
一个DataProvider的实例:
FileDataProvider递归的访问一个指定的路径,将得到的文件构造成索引请求提供给DataConsumer。
在本例中,此生产者需要通过jmx进行手动启动。
-->
<bean id="dataprovider" class="proj.zoie.impl.indexing.FileDataProvider">
<constructor-arg value="file:${source.directory}"/>
<property name="dataConsumer" ref="indexingSystem" />
</bean>
<!--
an instance of an IndexableInterpreter:
FileIndexableInterpreter converts a text file into a lucene document, for example
purposes only
一个IndexableInterpreter的实例:
在本例中,FileIndexableInterpreter将一个文本文件转换成为一个Lucene的Document对象。
从上面的介绍中我们知道,DataProvider作为一个生产者生产了DataEvent对象供消费者DataConsumer进行消费,然而由于Zoie最终是基于Lucene的,Lucene是不能够索引DataEvent对象的,这就需要有人负责将DataEvent转换成为Lucene的Document对象,根据应用的需要控制添加那些Field,添加什么样的Field等,此工作由翻译器Interpreter完成。
-->
<bean id="fileInterpreter" class="proj.zoie.impl.indexing.FileIndexableInterpreter" />
<!-- A decorator for an IndexReader instance:
The default decorator is just a pass through, the input IndexReader is returned.
一个IndexReader的装饰者:
默认的装饰者什么都不做,将原IndexReader返回。
注意这里使用的是一个重要的设计模式,装饰者模式。被包装的IndexReader是直接打开Lucene索引的IndexReader,IndexReaderFactory在得到这些IndexReader后,都会经过此类封装一下,再返回给用户。基本的Lucene的IndexReader打开,会加载和初始化一些基本的东西,然而有时候,用户需要在IndexReader打开的时候,同时加载一些自己的东西,此类给了用户这样一个机会,用户只要实现自己的装饰者就可以了。在和Zoie同一个项目Bobo(实现Facet搜索,使用过Solr的同学可能会比较熟悉)中,实现了BoboIndexReaderDecorator,其作用就是在IndexReader打开的时候,将Facet信息加载到内存中形成某种数据结构,从而在收集Facet的时候快速的使用。
-->
<bean id="idxDecorator" class="proj.zoie.impl.indexing.DefaultIndexReaderDecorator" />
<!-- A zoie system declaration, passed as a DataConsumer to the DataProvider declared above
一个ZoieSystem的声明,在上面的DataProvider的声明中,其是作为一个DataConsumer传入的。
-->
<bean id="indexingSystem" class="proj.zoie.impl.indexing.ZoieSystem" init-method="start" destroy-method="shutdown">
<!-- disk index directory 索引文件夹-->
<constructor-arg index="0" value="file:${index.directory}"/>
<!-- sets the interpreter 设置翻译器-->
<constructor-arg index="1" ref="fileInterpreter" />
<!-- sets the decorator 设置装饰器-->
<constructor-arg index="2">
<ref bean="idxDecorator"/>
</constructor-arg>
<!-- set the Analyzer, if null is passed, Lucene's StandardAnalyzer is used
设置分词器,如果为null,则使用默认的Lucene的StandardAnalyzer
-->
<constructor-arg index="3">
<null/>
</constructor-arg>
<!-- sets the Similarity, if null is passed, Lucene's DefaultSimilarity is used
设置相似性评分器,如果为null,则使用Lucene默认的DefaultSimilarity
-->
<constructor-arg index="4">
<null/>
</constructor-arg>
<!-- the following parameters indicate how often to triggered batched indexing,
whichever the first of the following two event happens will triggered indexing
下面的两个参数表示触发批量索引的频率,任意一个满足条件则触发索引。
-->
<!-- Batch size: how many items to put on the queue before indexing is triggered
批量大小:<!-- 一个是积累多少文档进行flush -->
-->
<constructor-arg index="5" value="1000" />
<!-- Batch delay, how long to wait before indxing is triggered
批量延时:<!-- 一个是延迟多长时间flush. ms 在两个中间有一个达到的时候,内存flush到硬盘上 -->
-->
<constructor-arg index="6" value="300000" />
<!-- flag turning on/off real time indexing
是否开启实时索引的标志位
-->
<constructor-arg index="7" value="true" />
</bean>
<!-- a search service 一个搜索服务 -->
<bean id="mySearchService" class="com.mycompany.search.SearchService">
<!-- IndexReader factory that produces index readers to build Searchers from
ZoieSystem作为IndexReaderFactory向搜索服务提供IndexReader列表,使其可以构造Searcher。
-->
<constructor-arg ref="indexingSystem" />
</bean>
发表评论
-
es recover
2015-07-01 14:43 566on log operations 2015-07-01 14 ... -
java
2012-02-09 23:35 760看看性能!加载15万多个词,搜索不到1毫秒。 不知和ZZL算 ... -
单例模式收藏
2011-10-25 09:08 889public class Singleton { ... -
java 集合性能测试
2011-06-21 23:07 2663package fubar; import gn ... -
lucene 遍历索引
2011-06-09 12:45 1310使用Lucene的API遍历 ... -
十进制转二进制
2011-05-03 10:27 2006十进制转二进制: 用2辗转相除至结果为1 将余数 ... -
Lucene near real time search
2011-04-15 09:48 1821在2.9之前,要看到index writer上发生的更 ... -
Apache Mahout 介绍集合
2011-04-04 19:08 1439Apache Mahout 是 ASF(Apache S ... -
字符串排列组合
2011-02-18 16:15 1069public class Zuhe { public sta ... -
nio分割普通文件
2011-01-25 08:45 711package utils; import java.i ... -
java 面试收集
2011-01-10 17:12 7871. ArrayList 和Vector是采用数组方式存 ... -
ARRAYLIST VECTOR LINKEDLIST 区别与用法
2011-01-08 13:37 772最近用到了,所以依然是转载ArrayList 和Vector是 ... -
HashSet<E> ConcurrentHashMap和HashMap
2011-01-08 22:46 920类 HASHSET<E> 所有已 ...
相关推荐
该项目是一款基于freeRTOS操作系统和STM32F103x微控制器的手机远程控制浴室温度系统设计源码,共包含1087个文件,包括580个C语言源文件、269个头文件、45个汇编源文件、36个数据文件、36个目标文件、35个编译规则文件、28个包含文件、27个文本文件、6个源文件、3个归档文件。此系统通过手机远程实现对浴室温度的有效控制,适用于智能浴室环境管理。
labview程序代码参考学习使用,希望对你有所帮助。
labview程序代码参考学习使用,希望对你有所帮助。
labview程序代码参考学习使用,希望对你有所帮助。
labview程序代码参考学习使用,希望对你有所帮助。