- 浏览: 134931 次
- 性别:
- 来自: 石家庄
文章分类
最新评论
-
shuzheng5201314:
如果不管这样的错误有影响吗?你这样貌似可行!
Proxool连接池在reload web容器时出现HouseKeeper的空指针异常 -
SpreadDiaries:
...
[转]常见数据库字段类型与java.sql.Types的对应 -
kevinhrw:
<bean
class="org.spri ...
用BeanNameAutoProxyCreator自动创建事务代理 -
hilliate:
第一步,把冰箱门打开第二步,把大象装进去第三步,把冰箱门关上呵 ...
Struts2中实现自定义标签很简单,主要分为3步:
1。今天研究了一下lucene,对于初学者来说,有一个地方以前还没怎么弄懂,可能不是很用心吧。今天又写点小的作业,用lucene来实现,对于以前遇到的这点问题进行了总结。
Lucene提供四个不同的字段类型,你可以从中做出选择:
n Keyword—不被分析,但是被索引并逐字存储到索引中。这个类型适合于原始值需要保持原样的字段,如URL、文件系统路径、日期、个人名称、社会安全号码、电话号码等等。例如,我们在Indexer(列表1.1)中把文件系统路径作为Keyword字段。
n UnIndexed—不被分析也不被索引,但是它的值存储到索引中。这个类型适合于你需要和搜索结果一起显示的字段(如URL或数据库主键),但是你从不直接搜索它的值。因为这种类型字段的原始值存储在索引中,这种类型不适合于存放比较巨大的值,如果索引大小是个问题的话。
n UnStored—和UnIndexed相反。这个字段类型被分析并索引但是不存储在索引中。它适合于索引大量的文本而不需要以原始形式重新获得它。例如网页的主体或任休其它类型的文本文档。
n Text—被分析并索引。这就意味着这种类型的字段可以被搜索,但是要小心字段大小。如果要索引的数据是一个String,它也被存储;但如果数据(如我们的Indexer例子)是来自一个Reader,它就不会被存储。这通常是混乱的来源,所以在使用Field.Text时要注意这个区别。
上面是lucene in Action中写道的,但是以前不是理解的很到位,今天弄明白了些。
1。对于keyword--我们在程序当中可以通过keyword进行查找,并可以通过get(“keyword”)来获取keyword的值
举例:
如
IndexWriter writer = new IndexWriter(dir, getAnalyzer(), false);
string keyword="1234567".
Document doc= new Document();
doc.add(Field.Keyword("telephone","1234567"))
doc.close();
writer.addDocument(doc);
Query query = QueryParser.parse(str, "telephone", new StandardAnalyzer());
Hits hits = is.search(query);
for (int i = 0; i < hits.length(); i++) {
Document doc = hits.doc(i);
System.out.print(doc.get("telephone"));
}
打印的结果为:1234567
就是
2。对于Unindexed,我们不能通过这个字段来索引,如果你这样做,那么肯定差不到任何值,但是通过其它的如keyword索引后,如Unindexed的字段设为city。你通过keyword查询后,可以通过调用get("city")的值来获取unIndexed的值。
IndexWriter writer = new IndexWriter(dir, getAnalyzer(), false);
string keyword="1234567".
Document doc= new Document();
doc.add(Field.Unndexed("telephone","1234567"))
doc.close();
writer.addDocument(doc);
Query query = QueryParser.parse(str, "telephone", new StandardAnalyzer());
Hits hits = is.search(query);
for (int i = 0; i < hits.length(); i++) {
Document doc = hits.doc(i);
System.out.print(doc.get("telephone"));
}
打印的结果为:null
3. Unstore 这个字段支持索引,但是不保存原始的信息。通过调用get方法获得不了这个字段的值。
IndexWriter writer = new IndexWriter(dir, getAnalyzer(), false);
string keyword="1234567".
Document doc= new Document();
doc.add(Field.Keyword("telephone","1234567"))
doc.close();
writer.addDocument(doc);
Query query = QueryParser.parse(str, "telephone", new StandardAnalyzer());
Hits hits = is.search(query);
for (int i = 0; i < hits.length(); i++) {
Document doc = hits.doc(i);
System.out.print(doc.get("telephone"));
}
打印的结果为:null
这个字段支持索引,我们可以通过这个字段进行索引,然后调用其他字段的值,但是不能通过其他字段索引调用这个字段的 get方法,那么还是不能够得到所塑要的值。
4. text
分两种情况
第一,以String为参数:
IndexWriter writer = new IndexWriter(dir, getAnalyzer(), false);
string keyword="1234567".
Document doc= new Document();
doc.add(Field.Text("telephone","1234567"))
doc.close();
writer.addDocument(doc);
Query query = QueryParser.parse(str, "telephone", new StandardAnalyzer());
Hits hits = is.search(query);
for (int i = 0; i < hits.length(); i++) {
Document doc = hits.doc(i);
System.out.print(doc.get("telephone"));
}
输出结果为1234567
这是以字符串卫参数,那么既可以支持索引又可以调用这个字段保存的原始信息。
第二种情况
以文件流为参数
IndexWriter writer = new IndexWriter(dir, getAnalyzer(), false);
string keyword="1234567".
Document doc= new Document();
doc.add(Field.Text("telephone",new FileReader("hello.txt")))
doc.close();
writer.addDocument(doc);
Query query = QueryParser.parse(str, "telephone", new StandardAnalyzer());
Hits hits = is.search(query);
for (int i = 0; i < hits.length(); i++) {
Document doc = hits.doc(i);
System.out.print(doc.get("telephone"));
}
假设未见hello.txt中存在1234567这个字符串。
输出结果为null
这个是以文件流为参数,他不保存原始的文件信息,但是支持索引。所以这个方法和unstore用起来是一样的。
Lucene提供四个不同的字段类型,你可以从中做出选择:
n Keyword—不被分析,但是被索引并逐字存储到索引中。这个类型适合于原始值需要保持原样的字段,如URL、文件系统路径、日期、个人名称、社会安全号码、电话号码等等。例如,我们在Indexer(列表1.1)中把文件系统路径作为Keyword字段。
n UnIndexed—不被分析也不被索引,但是它的值存储到索引中。这个类型适合于你需要和搜索结果一起显示的字段(如URL或数据库主键),但是你从不直接搜索它的值。因为这种类型字段的原始值存储在索引中,这种类型不适合于存放比较巨大的值,如果索引大小是个问题的话。
n UnStored—和UnIndexed相反。这个字段类型被分析并索引但是不存储在索引中。它适合于索引大量的文本而不需要以原始形式重新获得它。例如网页的主体或任休其它类型的文本文档。
n Text—被分析并索引。这就意味着这种类型的字段可以被搜索,但是要小心字段大小。如果要索引的数据是一个String,它也被存储;但如果数据(如我们的Indexer例子)是来自一个Reader,它就不会被存储。这通常是混乱的来源,所以在使用Field.Text时要注意这个区别。
上面是lucene in Action中写道的,但是以前不是理解的很到位,今天弄明白了些。
1。对于keyword--我们在程序当中可以通过keyword进行查找,并可以通过get(“keyword”)来获取keyword的值
举例:
如
IndexWriter writer = new IndexWriter(dir, getAnalyzer(), false);
string keyword="1234567".
Document doc= new Document();
doc.add(Field.Keyword("telephone","1234567"))
doc.close();
writer.addDocument(doc);
Query query = QueryParser.parse(str, "telephone", new StandardAnalyzer());
Hits hits = is.search(query);
for (int i = 0; i < hits.length(); i++) {
Document doc = hits.doc(i);
System.out.print(doc.get("telephone"));
}
打印的结果为:1234567
就是
2。对于Unindexed,我们不能通过这个字段来索引,如果你这样做,那么肯定差不到任何值,但是通过其它的如keyword索引后,如Unindexed的字段设为city。你通过keyword查询后,可以通过调用get("city")的值来获取unIndexed的值。
IndexWriter writer = new IndexWriter(dir, getAnalyzer(), false);
string keyword="1234567".
Document doc= new Document();
doc.add(Field.Unndexed("telephone","1234567"))
doc.close();
writer.addDocument(doc);
Query query = QueryParser.parse(str, "telephone", new StandardAnalyzer());
Hits hits = is.search(query);
for (int i = 0; i < hits.length(); i++) {
Document doc = hits.doc(i);
System.out.print(doc.get("telephone"));
}
打印的结果为:null
3. Unstore 这个字段支持索引,但是不保存原始的信息。通过调用get方法获得不了这个字段的值。
IndexWriter writer = new IndexWriter(dir, getAnalyzer(), false);
string keyword="1234567".
Document doc= new Document();
doc.add(Field.Keyword("telephone","1234567"))
doc.close();
writer.addDocument(doc);
Query query = QueryParser.parse(str, "telephone", new StandardAnalyzer());
Hits hits = is.search(query);
for (int i = 0; i < hits.length(); i++) {
Document doc = hits.doc(i);
System.out.print(doc.get("telephone"));
}
打印的结果为:null
这个字段支持索引,我们可以通过这个字段进行索引,然后调用其他字段的值,但是不能通过其他字段索引调用这个字段的 get方法,那么还是不能够得到所塑要的值。
4. text
分两种情况
第一,以String为参数:
IndexWriter writer = new IndexWriter(dir, getAnalyzer(), false);
string keyword="1234567".
Document doc= new Document();
doc.add(Field.Text("telephone","1234567"))
doc.close();
writer.addDocument(doc);
Query query = QueryParser.parse(str, "telephone", new StandardAnalyzer());
Hits hits = is.search(query);
for (int i = 0; i < hits.length(); i++) {
Document doc = hits.doc(i);
System.out.print(doc.get("telephone"));
}
输出结果为1234567
这是以字符串卫参数,那么既可以支持索引又可以调用这个字段保存的原始信息。
第二种情况
以文件流为参数
IndexWriter writer = new IndexWriter(dir, getAnalyzer(), false);
string keyword="1234567".
Document doc= new Document();
doc.add(Field.Text("telephone",new FileReader("hello.txt")))
doc.close();
writer.addDocument(doc);
Query query = QueryParser.parse(str, "telephone", new StandardAnalyzer());
Hits hits = is.search(query);
for (int i = 0; i < hits.length(); i++) {
Document doc = hits.doc(i);
System.out.print(doc.get("telephone"));
}
假设未见hello.txt中存在1234567这个字符串。
输出结果为null
这个是以文件流为参数,他不保存原始的文件信息,但是支持索引。所以这个方法和unstore用起来是一样的。
发表评论
-
truelicense使用手册
2015-04-25 09:47 39201.生成truelicense的maven项目 mvn a ... -
Java实现ftp上传文件、文件夹
2012-04-06 11:06 841import java.io.File; import ... -
Lucene入门级笔记六 -- 优化 .
2011-10-24 22:54 0Lucene 优化 1. 让程序中只有一个 Inde ... -
Lucene入门级笔记五 -- 分词器,使用中文分词器,扩展词库,停用词 .
2011-10-24 22:53 14071. 常见的中文分词器有 ... -
Lucene(全文检索技术)入门级笔记整之一——第一个Lucene程序 .
2011-10-24 22:50 1242Lucene(全文检索技术)入门级笔记整之一——第一个Lu ... -
Lucene入门级笔记二 -- 索引库的CRUD API 演示 .
2011-10-24 22:44 1081Lucene 对索引库的增删改查操作的 API 演示 没什么 ... -
Lucene入门级笔记三 -- 给关键词添加高亮效果
2011-10-24 22:43 17231. 使用高亮器。 2. ... -
Lucene入门级笔记四 -- 对检索结果排序 .
2011-10-24 22:40 1553对检索结果排序 1. 某些场合需要我们自定义搜索结果的 ... -
java获取各种日期
2011-07-14 16:47 829package com.cjy.test; impo ... -
tomcat无法运行两个struts2项目。解决方式
2011-06-15 14:22 1028提示异常: 严重: Exception starting f ... -
APACHE 2.2.9+TOMCAT6.0.18配置负载均衡
2010-10-21 23:14 1467目标: 使用 apache 和 tomcat 配置一个可以应 ... -
Request用法
2010-09-08 11:13 1186Request [JSP] JSP中的隐藏对象 -- ... -
div错位/解决IE6、IE7、IE8样式不兼容问题
2010-01-13 10:07 2300IE6里DIV错位的问题 ... -
主题:J2EE常用工具类汇总
2009-10-18 18:24 853J2EE常用工具类汇总 J2EE ... -
dreamweaver cs4 许可证过期的解决办法
2009-09-24 13:43 1856dreamweaver cs4 许可证过期的解决办法 200 ... -
时间处理类
2009-07-24 10:14 769/** * 时间处理类 */ ... -
apache POI 读取 Word
2009-07-24 10:13 1314import java.io.File; import ... -
apache POI 读取 Excel
2009-07-24 10:12 1227import java.io.File; import ja ... -
自动得到汉语拼音
2009-07-24 10:11 961import java.util.Iterator; imp ... -
java MD5 加密
2009-07-24 10:09 780/** * java.security包中的Messa ...
相关推荐
**Lucene索引器实例详解** Lucene是一个高性能、全文本搜索库,由Apache软件基金会开发,被广泛应用于各种搜索引擎的构建。它提供了一个高级的、灵活的、可扩展的接口,使得开发者能够轻松地在应用程序中实现全文...
Lucene提供了合并段(Merge)和优化索引(Optimize)的功能,以减少索引碎片,提高搜索性能。同时,定期删除已删除的文档和重建索引也是维护工作的一部分。 通过学习和实践这些基本功能,开发者可以构建出高效、...
二、Lucene索引创建流程 1. 初始化:首先,我们需要导入Lucene库,并创建一个标准的Analyzer,例如StandardAnalyzer,它对输入的文本进行标准化处理。 2. 创建索引目录:索引数据会存储在一个Directory对象中,...
《Lucene 5 + Zoie 实现近实时索引详解》 在当今大数据时代,搜索引擎技术扮演着至关重要的角色,而Lucene作为一款强大的全文搜索引擎库,被广泛应用于各种信息检索系统。然而,传统的Lucene在处理大规模数据时,...
【Lucene3.0查询类型详解】 在Lucene3.0中,查询处理是一个关键环节,涉及多种查询方式和理论模型。以下是对这些概念的详细解释: 1. **查询方式**: - **顺序查询**:是最简单的查询方式,直接遍历索引,效率较...
### Lucene开发详解 #### 一、Lucene简介 Lucene是一个高性能、全功能的文本搜索引擎库,由Doug Cutting创建并捐赠给Apache Software Foundation。它主要用于构建全文搜索应用程序,能够帮助开发者快速地在其应用...
**Lucene.net 知识点详解** Lucene.net 是 Apache Lucene 的 .NET 版本,它是一个开源、高性能、全文检索库,适用于各种 .NET 应用程序。Lucene 提供了强大的文本分析、索引创建、文档检索以及搜索结果排序等功能。...
在"Lucene 实时搜索视频详解"的课程中,我们将深入探讨如何利用 Lucene 实现高效且实时的搜索功能。 一、Lucene 基础 1. **索引过程**:Lucene 的核心概念之一是建立索引,将原始文本数据转化为可快速查询的结构。...
《lucene、lucene.NET 详细使用与优化详解》 lucene 是一个广泛使用的全文搜索引擎库,其.NET版本称为lucene.NET,它提供了强大的文本检索和分析能力,适用于各种场景下的全文搜索需求。lucene 并非一个可以直接...
**luke-7.1.0:Lucene索引查看工具详解** Luke是Apache Lucene项目的一个重要辅助工具,主要用于查看、分析和测试Lucene创建的索引。这个7.1.0版本提供了对Lucene索引的强大洞察力,帮助开发者、搜索引擎优化者以及...
SpringBoot与Lucene集成案例详解 本文将详细介绍如何将SpringBoot与Lucene集成,以实现站内搜索系统。 Lucene是一个高性能的全文检索引擎,它可以帮助我们快速地检索大量的文本数据。 一、案例介绍 在本案例中,...
### Hibernate 与 Lucene 的整合框架详解 #### 一、概述 在软件开发领域,特别是企业级应用开发中,高效的数据检索与管理是至关重要的。Hibernate 和 Lucene 分别作为对象关系映射(ORM)工具和全文搜索引擎,在...
**Lucene索引分析工具详解** Lucene是一个高性能、全文本搜索库,它为开发者提供了在应用程序中实现全文检索功能的基础。在这个场景中,我们关注的是一个专门针对Lucene.net的索引分析工具,该工具被称为"Lucene...
**Lucene分词与查询详解** Lucene是一个高性能、全文本搜索库,广泛应用于各种搜索引擎的开发中。它提供了一套强大的API,用于索引文本数据,并执行复杂的查询操作。在深入理解Lucene的分词与查询机制之前,我们...
《Lucene索引文件格式详解》 Lucene,作为一款强大的全文搜索引擎库,其索引文件格式是实现高效搜索的关键。本文将深入解析Lucene 1.3版本的索引文件结构,帮助读者理解其内部运作机制。 首先,我们要理解Lucene...
倒排索引是一种数据结构,将每个单词映射到包含该词的文档列表。在Lucene中,可以设置分词器(Analyzer)来处理文本,如中文分词器`ICUAnalyzer`或`SmartChineseAnalyzer`,确保正确切分中文词汇。 ### 分词与分析 ...
1. **索引**:在Lucene中,数据不是直接存储的,而是被转换为一种叫做索引的数据结构。索引是经过分析和分词后的文档内容,使得搜索过程可以快速定位到相关的文档。 2. **文档**:在Lucene中,一个文档可以包含多个...
Lucene,作为一种全文搜索的辅助工具,为我们进行条件搜索,无论是像Google,Baidu之类的搜索引 擎,还是论坛中的搜索功能,还是其它C/S架构的搜索,都带来了极大的便利和比较高的效率。本文主要是利用Lucene对MS Sql...