摘要:
Lucene.net提供了很全面的数据搜索操作,你可以利用Lucene.net检索磁盘中的文件,网页,数据库中的数据,但是前提是预先对数据创建索引。Lucene索引过程分为三个主要的操作阶段:将数据转换成文本、分析文本、并将分析过的文本保存到索引库中。如图所示:1.数据转成文本:须将数据转换成Lucene能够处理的格式——纯文本字符流。2.分析文本:完成了针对待索引数据的预处理操作,并创建了带有若干个域的Document对象,就可以调用IndexWriter的addDocument(Document)方法,将数据传递给Lucene来进行索引操作。在对数据进行索引处理时,Lucene会首先分析( 阅读全文
摘要:
前面的文章,我们已经对要检索的数据创建了索引,现在要做的就是为用户提供全文搜索的功能。通过Lucene我们还可以简单而高效地对搜索结果进行访问。此文和大家简单的说说利用Lucene.net进行数据的搜索。当我们查询Lucene的一个索引时,Lucene会返回一个有序的Hits对象集合(collection)Lucene使用默认的评分方式对该集合内的对象按照其得分高低进行排序。对于一个给定的查询,Lucene为每个文档计算一个评分(即一个表示相关性的数值)。Hits本身不是实际的匹配文档集,只是指向这些匹配文档的引用(reference)。Lucene.net中处理检索的核心API:类用 途In 阅读全文
摘要:
在搜索引擎技术中,分词对于影响搜索引擎结果排序有着至关重要的作用。与英文不同的是,中文之间没有空格,并且由于中国文字的博大精深,常常一句话可以分出很多不同效果的词汇,这里就不做举例了,想必大家都有所体会。所以对于一个中文搜索引擎来说,中文分词技术是十分重要的,也是十分讲究的。在搜索引擎运行的机制中,有很多种中文分词的办法,例如正向最大匹配分词,逆向最大分析,基于统计的分词,基于词库的分词等。但是在实际的搜索引擎运行过程中,分词的办法却没有这么简单了。因为搜索引擎不仅仅要去考虑到分词结果的正确性,还需要考虑到对于分不出来的词的处理。 所以能写出一个好的分词算法是很不容易的,由于水平有限,这里主要 阅读全文
摘要:
提到Lucene,想必园子中的老鸟们都有所耳闻,已经是数年前就出现的开源技术。很多站点都是利用它搭建自己网站的站内搜索。由于最近也在做数据检索方面的东西,也学习了下Lucene.net的使用。先来看下最终的效果:看上去还算是那么回事,我将利用几篇文章,和大家学习下Lucene.net创建索引,分词,检索等方面的知识。由于初学,有什么问题还望指教。此文先来和大家了解下Lucene.net,介绍给没有接触过的新手。Lucene:一个开源的使用Java语言编写的全文搜索引擎开发包。Lucene.net是使用在.NET平台下的搜索引擎开发工具,利用Lucene.net我们可以比较容易的搭建自己的数据检 阅读全文
摘要:
通常,Lucene的初学者们对Lucene.net索引文件的并发访问、IndexReader和IndexWriter的线程安全性存在一定的误解。而准确地理解这些内容是十分重要的。此文简单的论述下这两个问题。并发访问的规则Lucene提供了一些修改索引的方法,例如索引新文档、更新文档和删除文档;在执行这些操作时,为了避免对索引文件造成损坏,需要遵循一些特定的规则。这类问题通常会在web应用程序中突显出来。因为web应用程序是同时为多个请求而服务的。Lucene的并发性规则虽然比较简单,但我们必须严格遵守:1.任意数量的只读操作都可以同时执行。例如,多个线程或进程可以并行地对同一个索引进行搜索。2 阅读全文
摘要:
在网上看了一篇外文文章,里面介绍了提高Lucene索引速度的技巧,分享给大家。先来看下影响索引的主要因素:MaxMergeDocs该参数决定写入内存索引文档个数,到达该数目后就把该内存索引写入硬盘,生成一个新的索引segment文件。所以该参数也就是一个内存buffer,一般来说越大索引速度越快。MaxBufferedDocs这个参数默认是disabled的,因为Lucene中还用另外一个参数(RAMBufferSizeMB)控制这个bufffer的索引文档个数。其实MaxBufferedDocs和RAMBufferSizeMB这两个参数是可以一起使用的,一起使用时只要有一个触发条件满足就写入 阅读全文
摘要:
系统简介HubbleDotNet 是一个基于.net framework 的开源免费的全文搜索数据库组件。开源协议是 Apache 2.0。HubbleDotNet提供了基于SQL的全文检索接口,使用者只需会操作SQL,就可以很快学会使用HubbleDotNet进行全文检索。 HubbleDotNet可以实现全文索引和查询、多域检索和排序、分组统计、消重、分类、聚类、多表关联查询等等一系列全文检索和数据挖掘功能。 HubbleDotNet提供开放的数据库适配器接口,可以和各种数据库完美整合,为各种数据库系统附加全文检索和数据挖掘功能。 HubbleDotNet设计了较为完善的并发控制程序,数据 阅读全文
摘要:
优化搜索性能 虽然建立索引的操作非常耗时,但是那毕竟只在最初创建时才需要,平时只是少量的维护操作,更何况这些可以放到一个后台进程处理,并不影响用户搜索。我们创建索引的目的就是给用户搜索,所以搜索的性能才是我们最关心的。下面就来探讨一下如何提高搜索性能。 1 将索引放入内存 这是一个最直观的想法,因为内存比磁盘快很多。Lucene提供了RAMDirectory可以在内存中容纳索引: Directory fsDir = FSDirectory.getDirectory(“/data/index/”, false); Directory ramDir = new RAMDirectory(fsDir 阅读全文
摘要:
IE9新特性2011-03-09 20:53:51|分类: IT/Net |标签:ie9javascript特性 |字号大中小订阅IE9已经越来越近,我们曾为大家介绍过IE7、IE8和IE9的差别,如果这还不足以让你对IE9有直观的认识,那么今天大家再一起来看九幅漫画,共同了解一下IE9的九大特性:1、新JavaScript引擎IE9全新内置的“Chakra JavaScript引擎”充分利用当下主流计算机配置的多核心CPU,优化协同运算能力,编译、执行速度更快。同时与DOM的紧密集成,使得网络应用运行更顺畅,反应更迅速。 2、GPU硬件加速IE9将全面支持HTML5 GPU硬件加速,借助GP 阅读全文
摘要:
srcElement event.srcElement指向触发事件的node元素 用于确定事件源 是事件初始目标的html元素对象引用,因为事件通过元素容器层次冒泡,可以在任一层进行处理,所以由一个属性指向产生初始事件的元素是很有帮助的.有了元素的引用,就可以读/写改元素的属性,并调用他的任何方法. Html代码 <HTML> <HEAD> <TITLE>srcElementProperty</TITLE> <STYLETYPE="text/css"> .bold{font-weight:bold} .ital{f 阅读全文
摘要:
标签:getElementByIdgetElementsByNamegetElementsByTagNamegetElementById:语法: document.getElementByIdx(id)参数:id :必选项为字符串(String)返回值:对象;返回相同id对象中的第一个,如果无符合条件的对象,则返回 nullexample:document.getElementByIdx("id1").value;getElementsByName:语法: document.getElementsByName(name)参数:name :必选项为字符串(String)返回值 阅读全文
摘要:
Onunload,onbeforeunload都是在刷新或关闭时调用,可以在<script>脚本中通过 window.onunload来指定或者在<body>里指定。区别在于onbeforeunload在onunload之前执行,它还可 以阻止onunload的执行。 Onbeforeunload也是在页面刷新或关闭时调用,Onbeforeunload是正要去服务器读 取新的页面时调用,此时还没开始读取;而onunload则已经从服务器上读到了需要加载的新的页面,在即将替换掉当前页面时调用。Onunload是无 法阻止页面的更新和关闭的。而 Onbeforeunload 阅读全文
摘要:
对于并发,Lucene.Net 遵循以下规则:1. 允许任意多的读操作并发,即任意数量用户可同时对同一索引做检索操作。2. 即便正在进行索引修改操作(索引优化、添加文档、删除文档),依然允许任意多的检索操作并发执行。3. 不允许并发修改操作,也就是说同一时间只允许一个索引修改操作。Lucene.Net 内部已经对多线程安全进行了处理,打开 IndexWrite.cs / IndexReade.csr 文件,会发现很多操作都使用了 lock 进行多线程同步锁定。只要遵循一定的规则,就可以在多线程环境下安全运行 Lucene.Net。建议:1. Directotry、Analyzer 都是多线程安 阅读全文
摘要:
Lucene.Net无障碍学习和使用:索引篇项目中可能需要再次用到Lucene.Net,利用空闲时间写了个demo,主要涉及到索引的创建、删除、更新和一个简单查询。在本文示例中,Lucene.Net的版本是2.4.0,某些类和方法与最新版本或者较旧的版本有较多不同,希望您阅读顺利。一、简单认识索引Lucene.Net的应用相对比较简单。一段时间以来,我最多只是在项目中写点代码,利用一下它的类库而已,对很多名词术语不是很清晰,甚至理解可能还有偏差。从我过去的博客你也可以看出,语言表达一直不是个人所长,就算”表达“了也有大面积抄书的嫌疑,所以很多概念性的介绍能省则省(除非特别有别要说明),希望有心 阅读全文