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

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  
还行啊,做个记号

相关推荐

    luke--查看lucene 索引文件的工具

    查看lucene索引文件的document和field

    Apache Lucene全文检索和IKAnalyzer分词工具类

    import org.apache.lucene.document.Field; import org.apache.lucene.index.IndexWriter; import org.apache.lucene.index.Term; import org.apache.lucene.queryParser.MultiFieldQueryParser; import org.apache....

    Lucene创建索引步骤

    Lucene创建索引步骤: 1、创建Directory(索引位置) 2、创建IndexWrite(写入索引) 3、创建Document对象 4、为Document添加Field(相当于添加属性:类似于表与字段的关系) 5、通过IndexWriter添加文档到索引中

    一步一步跟我学习Lucene源码之lucene的各种Field

    此博文是对近期做lucene索引的总结, (lucene,solr,netty,hadoop),如蒙加入,不胜感激,大家共同探讨,本人争取每日一博,希望大家关注呦

    lucene,lucene教程,lucene讲解

    为了对文档进行索引,Lucene 提供了五个基础的类 public class IndexWriter org.apache.lucene.index.IndexWriter public abstract class Directory org.apache.lucene.store.Directory public abstract class ...

    lucene2.9.1所有最新开发包及源码及文档

    提供了索引搜索器IndexSearcher类和各种Query类,如TermQuery、BooleanQuery等。 6) queryParser模块:负责查询语句的语法分析。提供了解析查询语句的QueryParser类 7) util模块:包含一些公共工具类。 5. 创建...

    【分享:lucene学习资料】---<下载不扣分,回帖加1分,欢迎下载,童叟无欺>

    4.11. MultiSearcher类--多个索引搜索 13 4.12. ParalellMultiSearcher类---多线程搜索 14 5. 排序 14 5.1. Sort类 14 5.2. SortField类 14 5.3. 指定排序的法则 15 5.3.1. 按照文档的得分降序排序 15 5.3.2. 按文档...

    java Lucene初级教程

    将源中需要的信息加入Document的各个Field中,并把需要索引的Field索引起来,把需要存储的Field存储起来。  将索引写入存储器,存储器可以是内存或磁盘。 2.2读出流程  用户提供搜索关键词,经过analyzer处理。 对...

    基于lucene的搜索引擎总结

    Field:每个Document包含一个或多个不同命名的Field,每个Field对应一段数据,这些数据在搜索过程中可能会被查询或在索引中被检索 全文索引/搜索 Lucene索引代码示例: Directory dir = FSDirectory.getDirectory...

    Lucene 索引、删除、检索 实例

    完整的Eclipse 工程,举一些小例子,Lucene的建立索引、删除索引、以及检索,希望对喜欢或者用Lucene开发程序的朋友们有所帮助!

    基于Lucene的搜索引擎的实现

    完整代码,基于Lucene的分词,根据搜索引擎的目标和基本内容,将实现功能模块主要划分为创建中文分析器(创建索引)、读取索引文件查询记录、根据输入的内容进行分词、根据关键字进行全文检索、将结果按JSON格式输出...

    lucene2.9.1完整DEMO及开发文档

    //创建索引搜索器 TopDocs ts = isearcher.search(query, null, 100); //执行搜索,获取查询结果集对象 int totalHits = ts.totalHits; //获取命中数 System.out.println("命中数:" + totalHits); ...

    lucene基本包

    Lucene一个全文检索引擎的架构,提供了完整的查询引擎和索引引擎,部分文本分析引擎

    Elasticsearch的索引,单field索引和多field的联合索引

    作为一个分布式可扩展的实时搜索和分析引擎,一个建立在全文搜索引擎 Apache Lucene基础上的搜索引擎。Elasticsearch 可以用于:分布式实时文件存储,并将每一个字段都编入索引,使其可以被搜索;实时分析的分布式...

    WordAnalytics:基于HanLP和Lucene的全文索引和搜索库

    基于HanLP和Lucene的全文索引和搜索库。 安装 您可以在使用Cube Repo 原料药 创建索引目录 WordAnalytics analytics = new WordAnalytics ( new File &#40; " datadirectory " &#41;); 新增文件 Document document ...

    lucene of lietu

    基于lucene的实时搜索引擎zoie 实时搜索成为了目前搜索引擎发展的重要方向。越来越多的开发者开始关注搜索的实时性,比如twitter的信息或者新闻的搜索要求很高的时效性。 Zoie是linkedin支持的开源实时搜索引擎项目...

    Lucene笔记.doc

    Lucene笔记中包含了 什么是lucene 应用领域 创建索引 使用luke查看索引 搜索索引 Field域的详细介绍 各种类型的搜索 使用中文分词器

    indexer:使用 Apache Lucene 快速建立 CSV 文件索引

    索引器从 [ input.csv ] 创建 [ index/dir ] 索引器从 [ input.csv ] 追加 [ index/dir ] 索引器从 [ input.csv ] 更新 [ index/dir ] 索引器删除 [索引/目录] 索引器查找 [ 全部 | n ] return [ "field1,field2 .....

    开放源代码的全文检索引擎Lucene

    第一节 全文检索系统与Lucene简介··· 3 一、 什么是全文检索与全文检索系统?··· 3 二、 什么是Lucene?··· 4 三、 Lucene的应用、特点及优势··· 4 四、 本文的重点问题与cLucene项目··· 5 第二...

    lucene笔记

    1、 Lucene介绍 a) 什么是lucene b) 全文检索的应用场景 c) 全文检索定义 2、 Luence实现全文检索的流程(重点) 3、 入门程序 4、 Field域(重点) 5、 索引维护 a) 添加索引 b) 删除索引 c) 修改索引 6、 搜索...

Global site tag (gtag.js) - Google Analytics