`
deepfuture
  • 浏览: 4397127 次
  • 性别: Icon_minigender_1
  • 来自: 湛江
博客专栏
073ec2a9-85b7-3ebf-a3bb-c6361e6c6f64
SQLite源码剖析
浏览量:80019
1591c4b8-62f1-3d3e-9551-25c77465da96
WIN32汇编语言学习应用...
浏览量:69953
F5390db6-59dd-338f-ba18-4e93943ff06a
神奇的perl
浏览量:103276
Dac44363-8a80-3836-99aa-f7b7780fa6e2
lucene等搜索引擎解析...
浏览量:285475
Ec49a563-4109-3c69-9c83-8f6d068ba113
深入lucene3.5源码...
浏览量:14999
9b99bfc2-19c2-3346-9100-7f8879c731ce
VB.NET并行与分布式编...
浏览量:67479
B1db2af3-06b3-35bb-ac08-59ff2d1324b4
silverlight 5...
浏览量:32088
4a56b548-ab3d-35af-a984-e0781d142c23
算法下午茶系列
浏览量:45961
社区版块
存档分类
最新评论

lucene-多Field搜索与多索引搜索

阅读更多

1、多域搜索

MultiFieldQueryParser提供了3个静态方法

1)在不同的Field进行不同的查找

public static Query parse(String[] queries,String[] fields,Analyzer analyzer) throws ParseException

2)在不同的Field上进行同一查找,指定它们之间的布尔关系

public static Query parse(String query,String[] fields,BooleanClause.Occur[] flags,Analyzer analyzer) throws ParseException

3) 在不同的Field上进行不同的查找,指定它们之间的布尔关系

public static Query parse(String[] queries,String[] fields,BooleanClause.Occur[] flags,Analyzer analyzer) throws ParseException

2、多个索引搜索MultiSearcher

1)提供了从不同的索引中进行查找的功能,可以从不同的索引中取得结果,并将它们按某种方式排序后,返回给用户。利用一个for循环将所有的IndexSearcher对象取出,然后顺序循环搜索并得到结果,最后将结果合并返回用户。

2)

IndexSearcher searcher1=new IndexSearcher(INDEX_STORES_PATH1);

IndexSearcher searcher2=new IndexSearcher(INDEX_STORES_PATH2);

IndexSearcher[] searchers={searcher1,searcher2};

MultiSearcher searcher=new MultiSearcher(searchers);

Hits hits=searcher.searcher(q);

3、多线程搜索ParalellSearcher

一旦索引的请求发出,所以索引可以在同一时刻被检索,也就是被多个线程检索。

IndexSearcher[] searchers=new IndexSearcher[INDEX_DIR_NUMBER];

for (int i=0;i<INEX_DIR_NUMBER:i++){

Searchers[i]=new IndexSearcher(INDEX_STORE_PATH_BASE+i);

}

Term t=new Term("bookname","钢");

TermQuery q=new TermQuery(t);

MultiSearcher msearcher=new MultiSearcher(searchers);

Hits hits=msearcher.search(q);

4、Searchable和RMI

IndexSearcher实现了一个Searchable接口。Searchable接口继承自Java.rmi.Remote接口,只要有一个实现类,就可以实现远程RMI方式查找了。这个实现类是RemoteSearchable。索引引擎服务器通过RMI,获取到远程RemoteSearchable对象的接口,也就是Searchable接口,将它们做成数组,传入MultiSearcher或ParalellSearcher的构造函数中,再调用它们的search(Query)方法进行查找

分享到:
评论
1 楼 di1984HIT 2013-02-05  
还行啊,做个记号

相关推荐

    lucene-core-2.9.2.jar

    1. 模型与数据结构:Lucene的核心库主要包含以下组件:索引(Index)、文档(Document)、字段(Field)和分词器(Tokenizer)。索引是Lucene处理数据的主要方式,它将文本数据转化为便于搜索的结构。文档是信息的...

    lucene-core-2.4.0.jar

    开发者可以通过Document类来构建文档,添加字段(Field)并设置相应的属性,如是否存储、是否索引、是否可搜索等。 2. 分析器(Analyzer):分析器负责将输入的文本进行预处理,如分词、去除停用词等。Lucene提供了...

    lucene-core-3.0.2.jar,lucene-demos-3.0.2.jar

    在3.0.2版本中,Lucene引入了诸多优化,比如更高效的内存管理、更快的搜索速度以及更灵活的索引构建机制。其中,Document类是表示单个文档的基础单元,Field类则用于定义文档中的字段,如标题、内容等。Analyzer是...

    Lucene-core-2.0.0.jar

    首先,Lucene的核心概念包括文档(Document)、字段(Field)、索引(Index)和查询(Query)。一个文档可以包含多个字段,如标题、内容等,每个字段都可以被索引以便搜索。索引是Lucene的核心,它将文本数据转换...

    最新全文检索 lucene-5.2.1 入门经典实例

    总之,Lucene-5.2.1是一个强大而灵活的全文检索框架,不仅适用于大型网站的搜索功能,也可以用于企业内部信息检索、文档管理系统等多个领域。通过学习和实践这些经典实例,开发者能够掌握如何利用Lucene构建高效的...

    lucene-codecs-4.4.0.zip

    《深入理解Lucene 4.4.0代码库与Java核心技术》 在IT领域,Lucene是一个非常重要的开源全文搜索引擎库,它为开发者提供了强大的文本分析、索引和搜索功能。这里我们关注的是Lucene的4.4.0版本,通过解压"lucene-...

    Lucene-core-2.0.0

    3. **Lucene的版本历史**: 从2.0.0到最新的版本,Lucene经历了多次迭代和优化,增加了对更多语言的支持,提升了性能,增强了稳定性,并引入了许多新的特性,如更复杂的查询语法、多线程索引等。 4. **使用场景**: ...

    最全的lucene-2.4.0jar包

    - **Document和Field**:在Lucene中,信息以Document对象的形式存储,每个Document包含一个或多个Field,每个Field都有自己的名字和内容,可以设置不同的属性(如是否被索引、是否被存储等)。 - **Highlighter**:...

    lucene-4.2.1-src.tgz

    7. **高级功能**:Lucene还包括多线程支持、近实时搜索、自定义排序、过滤器(`Filter`)和拦截器(`Collector`)等高级特性,允许开发者进行更复杂的检索策略设计。 8. **扩展性**:Lucene本身只是一个库,开发者...

    lucene-1.4.3

    总之,Lucene 1.4.3是一个功能强大且灵活的全文搜索引擎库,它提供了从文本分析到索引构建,再到高效搜索的一整套解决方案。无论是新手还是经验丰富的开发者,都能从中找到满足需求的功能和学习的机会。通过深入研究...

    java全文搜索lucene-3.0.0-src+lib.zip

    Lucene的工作流程主要包括索引创建、索引读取和搜索三个阶段: - 创建索引:使用Analyzer处理文档,生成Token流,然后通过IndexWriter写入索引。 - 读取索引:使用IndexReader打开已有的索引文件。 - 搜索:Searcher...

    lucene-5.5.3.zip

    - **文档(Document)**:表示要被索引的信息,可以包含多个字段(Field),如标题、内容、作者等。 - **段(Segment)**:索引的基本单位,存储一组文档的索引信息。 - **倒排索引(Inverted Index)**:每个词...

    lucene-project.zip

    5. **搜索(Search)**:用户提交查询后,Lucene会使用查询解析器解析输入,生成查询对象,然后与索引进行匹配,返回最相关的文档。 6. **评分(Scoring)**:Lucene会根据多个因素(如词频、文档频率等)对匹配的...

    lucene-3.0.1库及源代码

    2. ** 示例模块(examples)**:提供了简单的示例程序,展示如何使用Lucene进行索引和搜索。 3. **测试模块(test)**:丰富的单元测试代码,帮助验证功能的正确性。 4. **贡献模块(contrib)**:包含社区贡献的...

    最新版linux lucene-8.10.0.tgz

    - **Document**:表示要索引的数据对象,可以包含多个Field,每个Field有其特定的名称和内容。 - **IndexWriter**:用于创建和更新索引,你可以通过它来添加、删除和修改Documents。 - **Searcher**:负责查询...

    lucene-3.5.0.jar

    - **Document**:Document是存储信息的基本单元,可以包含多个Field,每个Field都有其特定的属性,如是否可搜索、是否可存储等。 - **IndexWriter**:用于创建和更新索引,它管理索引的生命周期,包括添加、删除和...

    lucene-2.1.0-src.zip

    - **网站搜索**:很多网站使用Lucene作为其内部搜索的后端,提供快速准确的站内搜索服务。 - **信息检索系统**:企业级的文档管理系统、知识库系统等都可以利用Lucene进行全文检索。 - **日志分析**:通过对...

    lucene-5.3.1源代码

    - 字段(Field):文档中的一个属性,可以设置为可搜索、可索引或只读。 - 索引(Index):经过分析和转换后的文档集合,用于快速查找匹配的文档。 - 分析器(Analyzer):负责将输入文本拆分成可搜索的术语,...

    lucene-4.7.0.

    《深入理解Lucene 4.7.0:Java全文索引与高亮显示技术》 Lucene是一个由Apache软件基金会开发的开源全文检索库,它为Java开发者提供了强大的文本搜索功能。在4.7.0这个版本中,Lucene不仅强化了其核心搜索功能,还...

    lucene-3.0.0-src.zip

    1. 多字段搜索:Lucene支持多字段检索,允许用户指定多个字段进行匹配,提高查询的灵活性。 2. 断词查询(Wildcard Query):允许用户使用通配符进行部分匹配,如“*programming”。 3. 路径查询(Path Query):...

Global site tag (gtag.js) - Google Analytics