跨域 解决方案.doc

跨域 解决方案.doc

ID:61417452

大小:51.50 KB

页数:9页

时间:2021-01-27

跨域 解决方案.doc_第1页
跨域 解决方案.doc_第2页
跨域 解决方案.doc_第3页
跨域 解决方案.doc_第4页
跨域 解决方案.doc_第5页
资源描述:

《跨域 解决方案.doc》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、解读Lucene.Net——一、Directory之一在使用Lucene.Net中,第一个接触的类一般是Directory。它是Lucene存储的一个抽象,由此派生了两个类:FSDirectory和RAMDirectory,用于控制索引文件的存储位置。使用FSDirectory类,就是存储到硬盘;使用RAMDirectory类,则是存储到内存。   图1-1存储抽象实现UML图 如图1-1,显示了这种关系。而看Lucene代码会发现,RAMDirectory和FSDirectory还分别有一个内嵌类

2、。这个内嵌类实际上是通过工具从Java版本转移过来,工具自动产生的。那就先看看Java代码的结构,然后再来看转移过来生成的内嵌类是干什么用的。 Directory类一共有11个方法,看看类的注释就知道,翻译过来也是没有做非常细致的调整。比如,注释上有这句话“Java'si/oAPIsnotuseddirectly,butratheralli/oisthroughthisAPI.”。还保留着Java的解释了,虽然没有人会认为在dotNet平台会采用Java的API,但是,这句话确实够昏的。Direct

3、ory的注释原文:ADirectoryisaflatlistoffiles. Filesmaybewrittenonce,whentheyarecreated. Onceafileiscreateditmayonlybeopenedforread,ordeleted. Randomaccessispermittedbothwhenreadingandwriting.Java'si/oAPIsnotuseddirectly,butratheralli/oisthroughthisAPI. Thispe

4、rmitsthingssuchas:implementationofRAM-basedindices;implementationindicesstoredinadatabase,viaJDBC;implementationofanindexasasinglefile; 意思就是:一个Directory对象是一份文件的清单。文件可能只在被创建的时候写一次。一旦文件被创建,它将只被读取或者删除。在读取的时候进行写入操作是允许的。Java的I/O库没有被直接使用,所以的I/O操作都通过这个API。这些存

5、储可以允许:实现基于内存的索引;实现索引存入数据库,通过JDBC;实现一个索引是一个文件。 而Directory的11个方法分别是:1、list    把一个Directory对象下的文件,按字符串数组的方式返回;2、fileExists 给定一个文件名,如果存在,就返回true;3、fileModified  返回给定文件名被修改的时间;4、touchFile    设置给定文件名文件的更新时间为现在;5、deleteFile     删除当前directory对象下一个给定文件名的文件,该文件必

6、须存在;6、renameFile  重命名当前directory一个文件的文件名,如果新的名字在directory里已经存在,将会更换。这个要更换原子;7、fileLength   返回文件的长度;8、createFile   创建一个空文件,并且返回该文件的写入流;9、openFile     返回一个存在文件的读取流;10、makeLock   锁定该directory对象;11、close          关闭该对象。 而在Directory类中,使用的都是抽象方法,把这个类换成接口也可以。

7、 然后再来看看RAMDirectory类。RAMDirectory是Directory的内存操作实现。RAMDirectory类有5个重载构造函数。RAMDirectory()构造函数无操作;RAMDirectory(Directorydir)  允许把硬盘上的索引载入内存,这个操作只适用于可以被载入内存的索引。(注:文件结构不对或者索引大小超出内存肯定就不行了。)这个构造函数只调用了RAMDirectory(Directorydir,booleancloseDir)构造函数,并未做其他动作。再来看

8、看RAMDirectory(Directorydir,booleancloseDir)构造函数。除了默认构造函数,其他3个构造函数都是调用的这个构造函数做处理的。  代码1-2:            string[] files = dir.List();            for (int i = 0; i < files.Length; i++)            {                // make place on ram disk   

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。