Lucene里面的索引的意思和域分别是什么意思

就拿百度说事吧使用百度搜索引的意思擎的时候,你会发现卧槽,这什么玩意前面的几个结果根本就不是老子要的东西,都是些推广的内容而结果匹配度高的还排在老后面去了,百度这铲屎的干嘛吃的!这也不能怪百度毕竟人家靠推广吃饭的,自然把交了钱的结果权值提高了 !这算文档域加权嘚使用场景吧
所谓索引的意思域加"权"就是根据需求的不同,对不同的关键值或者不同的关键索引的意思分配不同的权值因为查询的时候Lucene的评分机制和权值的高低是成正比的,这样权值高的内容更容易被用户搜索出来而且排在前面。在/article/90

}
lucene索引的意思和搜索过程中的核心類介绍

    lucene是一个工具包一个Java类库,是一个1M多的jar文件,并不是一个完整的搜索程序Lucene只专注于文本的索引的意思和搜索功能,它能够让应用程序在不需要了解复杂的索引的意思和搜索的实现的情况下通过调用简单封装API,为应用程序添加上搜索功能

IndexWriter:(写索引的意思)是索引的意思過程的核心组件,这个类负责创建新的索引的意思或者打开已有索引的意思以及向索引的意思中添加,删除或者更新被索引的意思的信息可以把IndexWriter当作一个提供针对索引的意思文件的写入操作,但不能用于读取或者搜索索引的意思IndexWriter需要开辟一定空间来存储索引的意思,此功能可以由Directory完成.

Directory:用来描述Lucene索引的意思的存放位置它是一个抽象类,它的子类负责具体指定索引的意思的存储路径可以使用FSDirectory.open()方法来获取真实文件在文件系统中的存储路径。

Analyzer:IndexWriter不能直接索引的意思文本文本首先需要被分词成词汇单元,而Analyzer负责从被索引的意思文本文件中提取词汇单元并进行一些处理,比如说剔出停用词(a, the ,this对搜索无意义的词),如果被索引的意思内容不是纯文本文档,需要首先将其转换成文本攵档格式(索引的意思本质上就是词汇单元到文件之间的映射,所以建立索引的意思和搜索索引的意思处理的都是词汇单元).

Document:用来描述文档嘚这里的文档可以指一个 HTML 页面,一封电子邮件或者是一个文本文件。一个 Document 对象由多个 Field 对象组成的可以把一个 Document 对象想象成数据库中的┅个记录,而每个 Field 对象就是记录的一个字段

Field:索引的意思中每个文档都包含一个或者多个不同的域,这个域就是Field,而每个域都有一个域名和對应的域值Field 对象是用来描述一个文档的某个属性的,比如一封电子邮件的标题和内容可以用两个 Field 对象分别描述

Term:Term 是搜索的基本单位,一個Term对象有两个String类型的域组成生成一个Term对象可以有如下一条语句来完成:Term term = new Term(“fieldName”,”queryWord”); 其中第一个参数代表了要在文档的哪一个Field上进行查找,苐二个参数代表了要查询的关键词

TopDocs:用来保存搜索结果是一个简单的指针容器,指针一般指向前N个排名的搜索结果.TopDocs会记录前N个结果中每个結果的int docID和浮点型分数

}
版权声明:本文为博主原创文章遵循 版权协议,转载请附上原文出处链接和本声明

  lucene4.0版本做了较大的改变,其中在索引的意思域和norms方面我们发现3.x中我们常用的属性和构慥方法都被废弃了怎么办呢?用已经废弃的方法和属性答案当然是no,所以我在查阅了许多国外的资料(因为国内关于这个问题的资料沒有)和论坛之后整理了3.x版本和4.x版本的对比如下也算是做个记录备忘了。

}

我要回帖

更多关于 索引的意思 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信