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)方法进行查找
分享到:
相关推荐
查看lucene索引文件的document和field
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创建索引步骤: 1、创建Directory(索引位置) 2、创建IndexWrite(写入索引) 3、创建Document对象 4、为Document添加Field(相当于添加属性:类似于表与字段的关系) 5、通过IndexWriter添加文档到索引中
此博文是对近期做lucene索引的总结, (lucene,solr,netty,hadoop),如蒙加入,不胜感激,大家共同探讨,本人争取每日一博,希望大家关注呦
为了对文档进行索引,Lucene 提供了五个基础的类 public class IndexWriter org.apache.lucene.index.IndexWriter public abstract class Directory org.apache.lucene.store.Directory public abstract class ...
提供了索引搜索器IndexSearcher类和各种Query类,如TermQuery、BooleanQuery等。 6) queryParser模块:负责查询语句的语法分析。提供了解析查询语句的QueryParser类 7) util模块:包含一些公共工具类。 5. 创建...
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. 按文档...
将源中需要的信息加入Document的各个Field中,并把需要索引的Field索引起来,把需要存储的Field存储起来。 将索引写入存储器,存储器可以是内存或磁盘。 2.2读出流程 用户提供搜索关键词,经过analyzer处理。 对...
Field:每个Document包含一个或多个不同命名的Field,每个Field对应一段数据,这些数据在搜索过程中可能会被查询或在索引中被检索 全文索引/搜索 Lucene索引代码示例: Directory dir = FSDirectory.getDirectory...
完整的Eclipse 工程,举一些小例子,Lucene的建立索引、删除索引、以及检索,希望对喜欢或者用Lucene开发程序的朋友们有所帮助!
完整代码,基于Lucene的分词,根据搜索引擎的目标和基本内容,将实现功能模块主要划分为创建中文分析器(创建索引)、读取索引文件查询记录、根据输入的内容进行分词、根据关键字进行全文检索、将结果按JSON格式输出...
//创建索引搜索器 TopDocs ts = isearcher.search(query, null, 100); //执行搜索,获取查询结果集对象 int totalHits = ts.totalHits; //获取命中数 System.out.println("命中数:" + totalHits); ...
Lucene一个全文检索引擎的架构,提供了完整的查询引擎和索引引擎,部分文本分析引擎
作为一个分布式可扩展的实时搜索和分析引擎,一个建立在全文搜索引擎 Apache Lucene基础上的搜索引擎。Elasticsearch 可以用于:分布式实时文件存储,并将每一个字段都编入索引,使其可以被搜索;实时分析的分布式...
基于HanLP和Lucene的全文索引和搜索库。 安装 您可以在使用Cube Repo 原料药 创建索引目录 WordAnalytics analytics = new WordAnalytics ( new File ( " datadirectory " )); 新增文件 Document document ...
基于lucene的实时搜索引擎zoie 实时搜索成为了目前搜索引擎发展的重要方向。越来越多的开发者开始关注搜索的实时性,比如twitter的信息或者新闻的搜索要求很高的时效性。 Zoie是linkedin支持的开源实时搜索引擎项目...
Lucene笔记中包含了 什么是lucene 应用领域 创建索引 使用luke查看索引 搜索索引 Field域的详细介绍 各种类型的搜索 使用中文分词器
索引器从 [ input.csv ] 创建 [ index/dir ] 索引器从 [ input.csv ] 追加 [ index/dir ] 索引器从 [ input.csv ] 更新 [ index/dir ] 索引器删除 [索引/目录] 索引器查找 [ 全部 | n ] return [ "field1,field2 .....
第一节 全文检索系统与Lucene简介··· 3 一、 什么是全文检索与全文检索系统?··· 3 二、 什么是Lucene?··· 4 三、 Lucene的应用、特点及优势··· 4 四、 本文的重点问题与cLucene项目··· 5 第二...
1、 Lucene介绍 a) 什么是lucene b) 全文检索的应用场景 c) 全文检索定义 2、 Luence实现全文检索的流程(重点) 3、 入门程序 4、 Field域(重点) 5、 索引维护 a) 添加索引 b) 删除索引 c) 修改索引 6、 搜索...