- 浏览: 592967 次
- 性别:
- 来自: 西安
文章分类
最新评论
-
青春依旧:
html5教学哪家强!当然要上华清远见!
深入理解浏览器兼容性模式 -
ashur:
真机智,看得我都笑自己了
js 字符串转dom 和dom 转字符串 -
panghaoyu:
实现一个智能提示功能需要ajax、数据库、jsp/php、算法 ...
solr第一弹 autocomplete(自动补全) -
FakLove:
连线如何删除啊
基于html5 的拖拽连线 -
FakLove:
连线可以再删除吗?
基于html5 的拖拽连线
上代码
import org.apache.lucene.document.Document; import org.apache.lucene.document.Field; import org.apache.lucene.index.IndexWriter; import org.apache.lucene.queryParser.MultiFieldQueryParser; import org.apache.lucene.search.BooleanClause; import org.apache.lucene.search.Hits; import org.apache.lucene.search.IndexSearcher; import org.apache.lucene.search.MultiSearcher; import org.apache.lucene.search.Query; public class Multisearcher { private static String INDEX_STORE_PATH1 = "C:\\multi\\1"; private static String INDEX_STORE_PATH2 = "C:\\multi\\2"; public static void main(String[] args) throws Exception { Multisearcher.multisearcher(); } public static void multisearcher() throws Exception { IndexWriter writer = new IndexWriter(INDEX_STORE_PATH1, new StandardAnalyzer(), true); writer.setUseCompoundFile(false); Document doc1 = new Document(); Field f1 = new Field("bookname", "钢铁是怎样炼成的", Field.Store.YES, Field.Index.TOKENIZED); Field f11 = new Field("price", "20.5", Field.Store.YES, Field.Index.UN_TOKENIZED); doc1.add(f1); doc1.add(f11); Document doc2 = new Document(); Field f2 = new Field("bookname", "钢铁战士", Field.Store.YES, Field.Index.TOKENIZED); Field f22 = new Field("price", "18.4", Field.Store.YES, Field.Index.UN_TOKENIZED); doc2.add(f2); doc2.add(f22); Document doc3 = new Document(); Field f3 = new Field("bookname", "钢和铁是两种不同的元素", Field.Store.YES, Field.Index.TOKENIZED); Field f33 = new Field("price", "7.6", Field.Store.YES, Field.Index.UN_TOKENIZED); doc3.add(f3); doc3.add(f33); writer.addDocument(doc1); writer.addDocument(doc2); writer.addDocument(doc3); writer.close(); //创建第二个索引器; IndexWriter writer2 = new IndexWriter(INDEX_STORE_PATH2, new StandardAnalyzer(), true); writer2.setUseCompoundFile(false); Document doc4 = new Document(); Field f4 = new Field("bookname", "钢要比铁有更多的元素", Field.Store.YES, Field.Index.TOKENIZED); Field f44 = new Field("price", "22.5", Field.Store.YES, Field.Index.UN_TOKENIZED); doc4.add(f4); doc4.add(f44); Document doc5 = new Document(); Field f5 = new Field("bookname", "钢和铁是两种重要的金属", Field.Store.YES, Field.Index.TOKENIZED); Field f55 = new Field("price", "15.9", Field.Store.YES, Field.Index.UN_TOKENIZED); doc5.add(f5); doc5.add(f55); Document doc6 = new Document(); Field f6 = new Field("bookname", "钢铁是两种重要的金属", Field.Store.YES, Field.Index.TOKENIZED); Field f66 = new Field("price", "19.00", Field.Store.YES, Field.Index.UN_TOKENIZED); doc6.add(f6); doc6.add(f66); writer2.addDocument(doc4); writer2.addDocument(doc5); writer2.addDocument(doc6); writer2.close(); String query1 = "钢"; String query2 = "[10 TO 20]";//注意格式:中括号还有关键字TO是大写的 String[] queries = { query1, query2 }; //指定两个域Field String field1 = "bookname"; String field2 = "price"; String[] fields = { field1, field2 }; //指定查询字句之间的关系 BooleanClause.Occur[] clauses = { BooleanClause.Occur.MUST, BooleanClause.Occur.MUST }; //转成多域查询MultiFieldQuery Query q = MultiFieldQueryParser.parse(queries, fields, clauses, new StandardAnalyzer()); //打印Query的内容 System.out.println(q.toString()); //创建两个IndexSearcher,以实现在多个索引目录进行查询 IndexSearcher searcher1 = new IndexSearcher(INDEX_STORE_PATH1); IndexSearcher searcher2 = new IndexSearcher(INDEX_STORE_PATH2); IndexSearcher[] searchers = { searcher1, searcher2 }; //使用MultiSearcher进行多域搜索 MultiSearcher searcher = new MultiSearcher(searchers); Hits hits = searcher.search(q); for (int i = 0; i < hits.length(); i++) { System.out.println(hits.doc(i)); } } }
发表评论
-
HTML5 Server-Sent Events With Java Servlets Example
2014-05-15 15:21 1383Since the dawn of modern web ... -
集群中session同步解决方式
2014-04-06 18:19 1212集群中几种session同步解决方案的比较(转) 在集群中 ... -
Extjs 几个常用控件
2012-11-22 13:01 2328NumberField控件 整数,小数,数字限制 ... -
solr 评分机制
2012-09-28 09:00 2268转自 http://blog.chenlb.com/20 ... -
Flyweight Pattern(享元模式)
2012-03-29 11:43 1445享元模式的特点是,复用我们内存中已存在的对象,降低系 ... -
ThreadPoolExecutor
2011-11-19 10:52 1588ThreadPoolExecutor是 jdk 1.5 ... -
spring mvc 分发器(DispatcherServlet)
2011-11-12 16:58 2780spring mvc 与其他的mvc框架一样都是一种 ... -
编码问题
2011-11-02 15:38 831JSP页面中的pageEncoding和contentTyp ... -
request session servletconfig servletcontext分析
2011-10-14 14:30 2296HttpServletRequest,HttpServle ... -
solr DataimportHanler fileld 出现null
2011-09-08 09:58 1141I'm wo ... -
solr DataimportHanler 效率对比
2011-09-08 09:28 111:用solrj 的api 调用封装SolrInputDocu ... -
solr DataimportHanler
2011-09-03 09:36 1284大多数的应用程序将数据存储在关系数据库、xml文件中 ... -
solr/home是个什么东西
2011-07-19 16:44 1956一直不太明白solr home是个什么东西,每次都 ... -
solr第二弹 关于“新蛋” “当当” “京东” 产品搜索的实现假想(1)
2011-04-09 09:39 80资料目前正在整理,很快会贴上去,主要内容 ... -
solr第一弹 autocomplete(自动补全)
2011-04-08 16:15 7243百度和google中都有文字的自动补全 ... -
nutch 更新url.txt无法执行新的抓取
2010-04-19 16:59 1755nutch在使用中经常会修改url.txt中要抓取的目标网站 ... -
tomcat部署的三种方式
2010-04-06 10:19 1444长时间习惯于myeclipse部署tomcat竟然把最基本的 ... -
nutch配置详解
2010-03-11 16:47 3392配置软件: 1、 Java jd ... -
WebLogicDeployableObject' may not be null的问题
2009-11-11 16:23 2564第一次用weblogic 出现了一个很奇怪的问题,按 ...
相关推荐
基于Lucene的索引与搜索技术,不仅涉及到数据的高效存储和检索,还包括了文本预处理、分词、相关性排序等多个环节。 第二章 搜索引擎的结构 2.1 系统概述 搜索引擎主要由三部分组成:网络爬虫(也称为网络机器人...
二、Lucene索引创建流程 1. 初始化:首先,我们需要导入Lucene库,并创建一个标准的Analyzer,例如StandardAnalyzer,它对输入的文本进行标准化处理。 2. 创建索引目录:索引数据会存储在一个Directory对象中,...
本文将深入探讨如何利用Lucene实现增量索引,这是一种在数据库或文件系统更新时仅对新数据或变化数据进行索引的技术,以降低资源消耗并保持搜索性能。 **1. Lucene基础知识** Lucene首先需要理解的是它的核心概念,...
本教程主要探讨的是如何利用Lucene进行索引优化,特别是通过多线程和处理多个目录来提高索引创建效率。 首先,我们需要理解Lucene的索引原理。Lucene将文档分解为词项(tokens),并对每个词项创建倒排索引。倒排...
**Lucene简介** Lucene是Apache软件基金会的一个开放源代码项目,它是一个高性能、全文本检索库,...通过上述步骤,你可以在MyEclipse10环境下使用Lucene快速建立和搜索索引,为你的应用程序添加强大的全文检索功能。
在深入探讨Lucene删除索引这一主题之前,我们先...总之,Lucene的删除索引机制是一个复杂但高效的过程,涉及到了位向量、段管理和索引优化等多个环节。在实际应用中,合理使用这些功能可以确保索引的准确性和资源效率。
**Lucene索引结构原理** Lucene是Apache软件基金会的开放源代码全文搜索引擎库,它为Java开发人员提供了强大的文本搜索功能。理解Lucene的索引结构原理对于优化搜索性能和设计高效的搜索应用至关重要。 首先,我们...
一个Lucene索引是由多个文件组成的,包括但不限于 segments文件、.del文件(删除文档标记)、.tii和.tis文件(Term Info Index和Term Info postings)、.frx、.fdx、.fdt、.fdt(Field Data)等。这些文件共同构成了...
综上所述,基于Lucene的分布式并行索引技术是解决大数据环境下高效索引构建问题的有效手段。通过采用内存缓冲机制、分布式处理和智能合并策略等关键技术,不仅可以显著提升索引构建的速度,还能有效改善用户体验。...
以上就是Lucene索引器实例的基本介绍,通过这个实例,我们可以理解到如何使用Lucene来创建、管理和搜索文本索引。在实际项目中,可以根据需求选择合适的存储(如硬盘目录或分布式存储)、优化分析器配置、处理大量...
《Lucene索引小示例解析》 Lucene是一个高性能、全文检索库,它由Apache软件基金会开发并维护。在Java编程环境中,Lucene被广泛应用于构建搜索功能,特别是对于大量文本数据的高效检索。本篇文章将通过一个简单的小...
Lucene 是一个高性能、全文本搜索库,被广泛用于构建高效的搜索引擎和信息检索系统。它提供了完整的搜索功能,包括分析、索引、查询以及结果排序等。在Java开发中,Lucene 提供了丰富的API来简化这些操作。以下是...
**Lucene索引和查询** Lucene是Apache软件基金会的开放源码全文搜索引擎库,它提供了文本检索的核心工具,使得开发者能够快速构建自己的搜索应用。本项目中的代码旨在展示如何利用Lucene对多个文件夹下的数据进行...
**Lucene.NET全文索引搜索Demo项目** Lucene.NET是一个基于Apache Lucene的开源全文搜索引擎库,它为.NET Framework提供高性能、可扩展的信息检索服务。这个"Lucene.NET全文索引搜索Demo项目"是一个实际应用示例,...
《深入理解Lucene索引查看程序与代码》 在信息技术领域,搜索引擎的高效运作离不开底层索引技术的支持,而Lucene作为Apache软件基金会的一个开放源代码项目,正是一个强大的全文检索库,它提供了高效的文本搜索功能...
- 在完成所有文档的索引后,调用`indexWriter.close()`来关闭`IndexWriter`,这一步骤非常重要,因为它会确保所有更改被保存到磁盘上。 #### 五、注意事项 - 确保源文件夹路径和索引文件夹路径正确。 - 调整字段...
以下是对Lucene索引机制的详细解析: 一、Lucene的索引过程 1. 文档分析:当向Lucene添加文档时,首先会经过一个分词器(Tokenizer),将文本拆分成一系列的词项(Token)。接着,这些词项会被过滤(Filter)和...
Luke 提供了诸如查看文档字段、搜索索引、查看倒排索引结构等功能,对于开发者来说是了解和调试 Lucene 索引的利器。 Luke 的源码也公开在 GitHub 上,这对于想深入理解 Lucene 内部机制的开发者来说是一个宝贵的...
iTextPDFExtractor.java ------ ...--PDFBox创建PDF文件的Lucene索引 PDFBoxPathIndex.java ------- --PDFBox创建指定目录PDF文档索引 POIOfficeExtractor.java ----- -- POI处理Excel和Word文档代码