11 2011 档案
摘要: 方法一://获取图片文件的二进制数据。byte[] datas =GetImage(tid);MemoryStream memStream = new MemoryStream(datas);memStream.WriteTo(context.Response.OutputStream);memStream.Close();context.Response.ContentType = "image/png";context.Response.StatusCode = 200;context.Response.End();方法二://获取图片文件的二进制数据。byte[] d阅读全文
摘要: //获取名为"MyClass"的类型 Type t = Type.GetType("MyClass"); //获取"MyClass"的属性 PropertyInfo[] properts = t.GetProperties(); //根据属性名获取某一属性 PropertyInfo p = t.GetProperty("Id"); //设置某一属性的值 MyClass my = new MyClass(); t.setValue(my, 123, null); 应用: public class BaseClass 阅读全文
摘要: 1, 有时对于一个Document来说,有一些Field会被频繁地操作,而另一些Field则不会。这时可以将频繁操作的Field和其他Field分开存 放,而在搜索时同时检索这两部分Field而提取出一个完整的Document。 这要求两个索引包含的Document的数量必须相同。 在创建索引的时候,可以同时创建多个IndexWriter,将一个Document根据需要拆分成多个包含部分Field的Document,并将这些Document分别添加到不同的索引。 而在搜索时,则必须借助ParallelReader类来整合。 ...阅读全文
摘要: 检索前,需要对检索字符串进行分析,这是由QueryParser来完成的。为了保证查询的正确性,最好用创建索引文件时同样的分析器。QueryParser解析字符串时,可以指定查询域,实际可以在字符串中指定一个或多个域。例如:“Info:电视台 AND ID:3329”,“Info:电视台”,“电视台”,假如不指定默认域,就会在默认域查询。QueryParser调用静态方法Parse后会返回Query的实例,原子查询。例如:“Info:电视台 AND ID:3329”会返回BooleanQuery,“Info:电视台”或“电视台”会返回PhraseQue...阅读全文
摘要: 具体的查询语句在这里简要介绍一些能被Lucene直接使用的查询语句.1. TermQuery查询某个特定的词,在文章开始的例子中已有介绍.常用于查询关键字. [Test] public void Keyword() { IndexSearcher searcher = new IndexSearcher(directory); Term t = new Term("isbn", "1930110995"); Query query = new TermQuery(t); Hits hits = searcher.Search(query); Assert阅读全文
摘要: Lucene.net 2.9.1版与2.3版的搜索比较。 比如:你搜索一个关键词,需要检索并输出一百万条记录,按2.3的版本,它是用 Hits hits = searcher.Search(query); 这种模式下,它会把所有命中的结果都放到hits中存下来,如果有一千万,它就会提出来一千万,而你只取一百万的时候,需手动从hits变量中提取。一千万条数据一次提出来,那将是非常耗内存,再加上并发,系统一下就吃不消了,如果数据量小,倒可以承受。 而2.9.1版本之后,它采用的方式变了,search出来的结果中,只包括命中的Doc ID和Score,代码如下 TopDocs topDocs =..阅读全文
摘要: Field.Store.YES:存储字段值(未分词前的字段值) Field.Store.NO:不存储,存储与索引没有关系 Field.Store.COMPRESS:压缩存储,用于长文本或二进制,但性能受损 Field.Index.ANALYZED_NO_NORMS:分词建索引,但是Field的值不像通常那样被保存,而是只取一个byte,这样节约存储空间 Field.Index.NOT_ANALYZED:不分词且索引 Field.Index.NOT_ANALYZED_NO_NORMS:不分词建索引,Field的值去一个byte保存 TermVector表示文档的条目(由一个Document和..阅读全文
摘要: Lucene提供四种不同类型的索引方法,分别是Keyword,UnIndexed,UnStored和Text,用户可以根据需要来选择合适的类型。下表详细说明了每种索引类型的用途和特点:在实际的应用设计中,Lucene的介入通常是为了优化关系数据库中相关数据的检索速度和耗费。Lucene的API接口设计的比较通用,输入输出结构都很像数据库的“表—>记录—>字段”,如果系统的待索引数据是来自数据库中的表,使用起来也非常方便。例如:系统索引管理模块接收来的待索引的数据,来自建立索引时数据库中生成的一个临时表,一共有六个字段,分别是:idElementNameElementValueend阅读全文

