摘要: 一、IndexReader性能分析 IndexReader完成了打开所有索引文件和提供底层reader API等繁重的工作,而IndexSearch则要简单得多。由于打开一个IndexReader需要较大的系统开销,因此最好是在所有搜索期间都重复使用一个IndexReader实例,只有在必要的时候才打开新的IndexReader。 另外,还可以从索引目录中直接创建IndexSearcher,这种情况下,系统会在后台建立自己私有的IndexReader,如果此时关闭Searcher,那么它同事也会关闭自己的IndexReader。因为IndexReader是由IndexSearcher打开的..阅读全文
posted @ 2014-04-10 17:55 逆心 阅读(404) | 评论 (2) 编辑
摘要: 一、分词的方法 分词的方法主要有以下几种: 1、单字切分 单字切分就是把一段文字按照每个字去建立索引。 如果用来切分“我爱你伟大的中国”,就会切成“我”,“爱”,“你”,“伟”,“大”,“的”,“中”,“国”。这种分词效率低,但也能解决一些问题,聊胜于无。 2、二分法 二分法就是把一段文字的每两个相邻的字算作一个词。同样对于上面的句子就会切成“我爱”,“爱你”,“你伟”,“伟大”,“大的”,“的中”,“中国”7个词。 3、词典法 词典法就是建立一个词典文件,然后使用词典和文字段落进行匹配,从而得出分词结果。在这种分词方法中,词典和匹配算法是关键。 做词典很容易,维护词典也不能...阅读全文
posted @ 2014-04-09 10:24 逆心 阅读(723) | 评论 (0) 编辑
摘要: 一、提取搜索结果 1、TopDocs对象的说明MaxScore:最高得分;TotalHits:匹配到的结果总数;ScoreDocs:匹配到的文档数组(内部可以获得文档Id与分数); 下面来看看获得的结果信息: Console.WriteLine(docs.MaxScore); //输出最高得分 Console.WriteLine(docs.TotalHits); //输出搜索结果数量 foreach (ScoreDoc d in docs.ScoreDocs) //输出文档得分与文档ID { Console.WriteLine(...阅读全文
posted @ 2014-04-03 16:48 逆心 阅读(255) | 评论 (0) 编辑
摘要: 一、解析搜索请求 搜索请求的概念是,用户输入关键词,然后程序去分析关键词,获取用户搜索的真实意图。 Lucene提供了一套QueryParser类,用来解析搜索请求。这个类是可以使用的。 1、QueryParser的基本使用 QueryParser用来分析用户输入的关键词,将关键词转换成Query对象。其构造方法如下所示: QueryParser parser = new QueryParser(Lucene.Net.Util.Version.LUCENE_30, "title", new StandardAnalyzer(Lucene.Net.Util.Version.L阅读全文
posted @ 2014-04-02 12:07 逆心 阅读(775) | 评论 (0) 编辑
摘要: 一、索引管理 1、查看索引的相关信息 查看索引的信息大概有如下方法:通过IndexWriter类读取索引的相关信息,将其显示出来。通过IndexReader及其子类读取索引的相关信息,将其显示出来。通过可视化工具查看索引的相关信息。 1、使用IndexWriter类读取索引的相关信息 使用IndexWriter读取并非最佳方法。 2、使用IndexReader及其子类读取索引的相关信息 IndexReader类是专门用于读取索引信息的类,它是一个抽象类,含有FilterIndexReader、MultiReader、ParallelReader等子类。 IndexReader类通...阅读全文
posted @ 2014-04-01 10:11 逆心 阅读(382) | 评论 (0) 编辑
摘要: 一、执行搜索的基本方式 使用Lucene.net执行搜索,首先要创建IndexSearcher对象,然后通过Term和Query对象来封装用户输入的搜索条件,最后将结果封装在Hits对象中,返回给用户。 1、创建搜索器对象:IndexSearcher 创建IndexSearcher对象的方法:如下: IndexSearcher searcher = new IndexSearcher(索引目录实例); 创建IndexSearcher对象很容易,创建完成之后,就可以使用它进行搜索了。它最常用的方式是search(),使用search方法将返回一个结果集对象,即Hits。 2、封装搜索...阅读全文
posted @ 2014-03-28 13:41 逆心 阅读(417) | 评论 (0) 编辑
摘要: 一、理解创建索引的过程 创建索引的过程与写一本书差不多。 创建索引的过程如下:建立索引器IndexWriter,这相当于一本书的框架。建立文档对象Document,这相当于一篇文章。(对应数据库就是一张表)建立信息字段对象,这相当于一篇文章中的标题,正文等。(对应数据库就是一个字段)将Field添加到Document里面。将Document添加到IndexWriter里面。关闭索引器IndexWriter。 在创建索引的时候,有三个基本步骤:创建Field。将Field组织到一个Document里面,这样就完成了对一篇文章的包装。将多个Document组织到一个IndexWriter里面...阅读全文
posted @ 2014-03-26 17:31 逆心 阅读(359) | 评论 (0) 编辑
摘要: Lucene.net是java平台搜索插件Lucene的移植版。它的主要用于开发搜索引擎,站内搜索等。 开篇之前,写个最简单的DEMO,让自己先体验下Lucene.net的魅力,顺便搭建环境。 static void Main(string[] args) { //写入数据到索引 Analyzer analyzer = new StandardAnalyzer(Lucene.Net.Util.Version.LUCENE_30); Directory directory = new RAMDir...阅读全文

框架:Lucene.net的更多相关文章

  1. java框架---->lucene的使用(一)

    Lucene是一个全文检索的框架,apache组织提供了一个用Java实现的全文搜索引擎的开源项目.这里我们对apache的lucene的框架做一个简单的介绍.心甘情愿这四个字,透着一股卑微,但也有藏 ...

  2. 全文检索框架---Lucene

    一.什么是全文检索 1.数据分类 我们生活中的数据总体分为两种:结构化数据和非结构化数据.   结构化数据:指具有固定格式或有限长度的数据,如数据库,元数据等.   非结构化数据:指不定长或无固定格式 ...

  3. OSCHina技术导向:Java全文搜索框架Lucene

    Lucene 是apache软件基金会一个开放源代码的全文检索引擎工具包,是一个全文检索引擎的架构,提供了完整的查询引擎和索引引擎,部分文本分析引擎.Lucene的目的是为软件开发人员提供一个简单易用 ...

  4. 9个基于Java的搜索引擎框架

    在这个信息相当繁杂的互联网时代,我们已经学会了如何利用搜索引擎这个强大的利器来找寻目标信息,比如你会在Google上搜索情人节如何讨女朋友欢心,你也会在百度上寻找正规的整容医疗机构(尽管有很大一部分广 ...

  5. 学习笔记之Lucene

    http://baike.baidu.com/view/371811.htm?fr=aladdin Apache Lucene(http://lucene.apache.org/) Java 全文搜索 ...

  6. Java入门到精通——框架篇之Hadoop概述

    一.Hadoop来历 Hadoop的思想来源于Google在做搜索引擎的时候出现一个很大的问题就是这么多网页我如何才能以最快的速度来搜索到,由于这个问题Google发明了倒排索引算法,通过加入了Map ...

  7. [转]9个基于Java的搜索引擎框架

    9个基于Java的搜索引擎框架 在这个信息相当繁杂的互联网时代,我们已经学会了如何利用搜索引擎这个强大的利器来找寻目标信息,比如你会在Google上搜索情人节如何讨女朋友欢心,你也会在百度上寻找正规的 ...

  8. Lucene搜索引擎入门

    一.什么是全文检索?            就是在检索数据,数据的分类:                在计算机当中,比如说存在磁盘的文本文档,HTML页面,Word文档等等......       ...

  9. ElasticSearch

    ElaticSearch简介: ES是一个搜索引擎,基于当前最先进,最高效的全功能开源搜索引擎框架lucene ES还有许多功能: 分布式实时文件存储,并将每一个字段都编入索引,使其可以被搜索 近实时 ...

  10. Nutch插件系统

    Nutch 基本情况 Nutch 是 Apache 基金会的一个开源项目,它原本是开源文件索引框架 Lucene 项目的一个子项目,后来渐渐发展成长为一个独立的开源项目.它基于 Java 开发,基于 ...

随机推荐

  1. Linux驱动模块的Makefile分析【转】

    本文转载自:http://blog.chinaunix.net/uid-29307109-id-3993784.html 1. 获取内核版本 当设备驱动需要同时支持不同版本内核时,在编译阶段,内核模块 ...

  2. cmder的使用和编码问题解决

    cmder 是一款 windows 下的命令集合软件,它可以集合各种系统下的命令,并且操作非常快速方便.安装有两个版本,一个是简化版(4.27M),一个是完全版(75.7M),它们的唯一区别:完全版包 ...

  3. WinForm画网格并填充颜色

    因为研究CodeCombat上的最后一题,自己尝试分解题目,然后想到需要画网格,还有最优化的方法 源代码如下 using System; using System.Collections.Generi ...

  4. 筛选出sql 查询结果中 不包含某个字符

    select * from table1 where patindex('%关键字%' , aa) = 0 select * from table1 where charindex('关键字' , a ...

  5. Linux CentOS 7 下 JDK 安装与配置

    前言 简单记录一下在CentOS 7中安装配置JDK 1.7的全过程~  ( 安装别的版本或者jre一样) 下载 首先是jdk 1.7 64bit & 32bit的下载地址: jdk-7u79 ...

  6. shiro的简单入门使用

    这里只是测试登录认证,没有web模块,没有连接数据库,用户密码放在shiro.ini配置中,密码没有加密处理,简单入门. 基于maven 先看目录结构 测试结果 pom.xml <?xml ve ...

  7. 有关keras(Ubuntu14.04,python2.7)

    第一部分:安装 由于我的电脑之前已经已经配置好了caffe,因此有关python的一切相关包都已经安装完成.因此,即使不用Anaconda安装依然很简单. sudo pip install tenso ...

  8. FAILED Selenium2Library

    FAILED Selenium2Library Importing test library 'Selenium2Library' failed: ImportError: cannot import ...

  9. Json多层嵌套,要怎么提取?

    一直用Jmeter的Json Extactor,对于多层的Json嵌套,很好用,自己写代码的时候,总是遇到各种Exception 看了网上的资料,整理一下 1. 最简单的JSON提取,只有一层的时候 ...

  10. Jmeter 4.0 扩展插件

    今天发现Jmeter4.0 也可以安装插件 而且比之前的版本的安装方法更为容易 https://jmeter-plugins.org/ https://jmeter-plugins.org/insta ...