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

lucene4.5源码分析系列:lucene概述 lucene索引格式:http://www.cnblogs.com/forfuture1978/archive/2009/12/14/1623597.html 阅读详情

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多线程创建索引及多目录下查询索引 目的:公司最近要求建立对数据库内多表的索引文件,来实现对数据库数据处理的全文检索。 表有多个,内容风别是不同表内的字段。选用了IK分词和Lucene实现。 多线程创建索引 多区域联合查询索引 阅读详情

相关推荐

AltiumDesigner 09安装过程破解问题 .

首先分享一下破解文件,网上总是下载不到,好不容易下载到了,放在网盘上,有需要的自取。AltiumDesigner 09破解文件。链接:https://pan.baidu.com/s/1ZGvbR_6T51hpcaFbQiMX5w 密码:qwvaAltiumDesigner 09安装安装文件,比较大,包含破解文件:链接:https://pan.baidu.com/s/1mfgragB519jpGfR...

xiaoxiao_rabbit的博客 3万+

Lucene全文检索框架+Solr+ElasticSearch搜索引擎(Java高级必备.ES)

课程提供所有代码笔记素材以及答疑 1、Lucene框架的熟练应用实现类似百度、京东商城等应用的全文检索效果; 1、Solr简介 2、Solr下载安装以及目录结构介绍 3、Solr应用部署至Tomcat服务器 4、Solr后台管理界面介绍 5、通过managed-schema配置Field以及中文分词器 6、将数据库中的数据导入至Solr索引库 7、通过Solr后台管理界面对索引进行CRUD高亮过滤排序分页 8、通过Solrj实现索引的添加更新 9、通过Solrj实现索引的删除 10、索引的检索_过滤_高亮等操作 11、项目实战应用 12、Solr知识点总结 1、熟练掌握Lucene框架的使用,实现类似百度、京东商城等应用的全文检索效果; 2、ElasticSearch下载安装(window以及linux下安装) 3、集群环境搭建 4、客户端Kibana安装与使用 5、集群管理插件head安装使用 6、java api 操作 ES 7、电商项目实战应用等等 .....

西门子 G120 变频器报文

G120报文

mmxxoo_xxmmp的博客 8069

Lucene全文检索框架+Solr搜索引擎(2018版.Java)

Lucene是一个开放源代码的全文检索引擎工具包, 提供了完整的查询引擎和索引引擎, 部分文本分析引擎。Solr是一个高性能,基于Lucene的全文搜索服务器。提供了比Lucene更为丰富的查询语言,同时实现了可配置、可扩展并对查询性能进行了优化,并且提供了一个完善的功能管理界面,是一款非常优秀的全文搜索引擎,是架构师技术!

不用敲命令!用宝塔面板可视化部署pbootCMS的保姆级教程(2024最新版)

本文提供2024年最新版pbootCMS可视化部署教程,全程使用宝塔面板操作,无需任何命令行知识。从服务器初始化、LNMP环境配置到源码上传、安装向导,手把手指导用户通过图形化界面快速搭建专业网站,适合零基础新手和追求高效建站的用户。

weixin_42509507的博客 490

RandLA-Net 调通代码1:Windows 11 + Tensorflow 2.4 + S3DIS数据集【踩坑+填坑】

TF不上进啊,学学pytorch

累了就要打游戏 2480

Lucene全文检索从入门到精通(精细讲解含代码笔记答疑服务)

Lucene是apache软件基金会4 jakarta项目组的一个子项目,是一个开放源代码的全文检索引擎工具包,但它不是一个完整的全文检索引擎,而是一个全文检索引擎的架构,提供了完整的查询引擎和索引引擎,部分文本分析引擎。通过本次课程的学习实现类似百度、京东商城等应用的全文检索效果;

为ESXI Host添加v3700 FC存储

物理环境: ESXI Host version 5.1.0 Brocade SAN Switch v3700 Storage 存储和ESXI Host分别用光纤线连接在SAN交换机上 1.查询ESXI Host 的WWN号: 2. SAN交换机上查询存储的WWPN号 SAN交换机: 3.建立zone,添加到cfg文件中 brocade8Gb

haoshuwei531024的专栏 7561

多域搜索MultiFieldQueryParser

//在不同的Field上进行不同的查找 package query; import org.apache.lucene.analysis.Analyzer; import org.apache.lucene.queryParser.QueryParser; import org.apache.lucene.search.BooleanClause; import org.apac

杨鑫newlife的专栏 4027

3GPP Release与UE Category:无线通信标准演进与终端能力分级全解析

在蜂窝移动通信领域,技术标准的演进与终端设备的能力分级是理解整个产业发展的核心框架。其基本原理由国际标准组织3GPP通过周期性发布的技术规范版本(Release)来定义,每个Release都像一份阶段性的技术蓝图,规定了网络与终端应支持的新功能与性能基线。这种标准化机制的技术价值在于确保了全球设备的互联互通与网络的平滑升级,为从4G LTE到5G NR乃至未来的演进提供了清晰路径。在这一框架下,终端能力分级(如LTE时代的UE Category)是将标准转化为具体设备性能的关键环节,它直接定义了终端在射频和

weixin_34098209的博客 330

详细介绍用MATLAB实现基于A*算法的路径规划(附完整的代码,代码逐行进行解释)(一)--------A*算法简介和环境的创建

   本系列文章主要介绍基于A*算法的路径规划的实现,并使用MATLAB进行仿真演示。    一、 A*算法简介       A*(A-Star)算法是一种静态路网中求解最短路径最有效的直接搜索方法,也是解决许多搜索问题的有效算法。算法中的距离估算值与实际值越接近,最终搜索速度越快。      公式表示为: f(n)=g(n)+h(n),其中, f(n) 是从初始状态经由状态n到目标状态的代价估计,g(n) 是在状态空间中从初始状态到状态n的实际代价,h(n) 是从状态n到目标状态的最佳路径的估计代价。

慕羽★的博客 7万+

lucene4下用MultiFieldQueryParser同时搜索多个field时

因为工作中突然要用到lucene,就到官网上下了lucene4.7的jar包和文档,回头开始学习的时候才发现,网上lucene相关的资料大部分都停留在3.*阶段,于是结合前辈的代码,自己写了下面一个例子,该例子可以实现对mysql数据库中单个表的索引和多字段同时搜索以及按各个字段设定的权重对结...

chunli5093的博客 600

Zookeeper+Hadoop+Spark+Flink+Kafka+Hbase+Hive 完全分布式高可用集群搭建(保姆级超详细含图文) 附安装包网盘下载

Hadoop+Spark+Flink+Zookeeper+Kafka+Hbase+Hive完全分布式高可用集群搭建 Hadoop高可用集群搭建 Spark高可用集群搭建 Flink高可用集群搭建 Zookeeper高可用集群搭建 Kafka高可用集群搭建 Hbase高可用集群搭建 Hive高可用集群搭建 mysql搭建 jdk部署 大数据集群环境搭建

Mr.L-OAM的博客 2万+

lucene.net学习六——多Field多索引文件的查询

在实际的需求中,我们需要输入一个关键语句,希望能搜索到标题中含有此关键词或者内容中也还有此关键语句的文章,这就是一个多Field查询的问题 当然多Field之间的关系可能为“与”也有可能为“或”。一般情况下,都在同一个目录索引下搜索,但是如果索引被分成很多文件,存在不同的地方,因此又会有一个多索引文件搜索的问题。下面通过代码演示: 首先编写建索引的代码: using System;usi...

weixin_30823001的博客 148

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

lucene多索引上的搜索

上代码 import org.apache.lucene.document.Document; import org.apache.lucene.document.Field; import org.apache.lucene.index.IndexWriter; import org.apache.lucene.queryParser.MultiFieldQueryParser; im

zha_zi的专栏 457

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

lucene 大小库 索引

lucene 大小库 索引 http://akululu.iteye.com/blog/314130lucene多索引文件并行查询 博客分类:LuceneluceneSQL.netLucene并行索引多目录Lucene并行索引多目录1、多字段搜索就是同时要一个以上...

203

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

Lucene读书笔记——5. 高级搜索技术

Lucene高级搜索技术

lihuaidong1989的专栏 862

Lucene的平行索引和同时搜索多个索引

Lucene的平行索引有时对于一个Document来说,有一些Field会被频繁地操作,而另一些Field则不会。这时可以将频繁操作的Field和其他Field分开存放,而在搜索时同时检索这两部分Field而提取出一个完整的Document。      这要求两个索引包含的Document的数量必须相同。     在创建索引的时候,可以同时创建多个IndexWriter,将一个Docu

在水一方 744

Lucene 排序及多字段查找(转)

  默认情况下,IndexSearcher类的search方法返回查询结果时,是按文档的分值排序的,可以使用重载的search方法对结果排序 IndexSearcher.search(Query,Sort); new Sort() 和 Sort.RELEVANCE,以

jaylongli的专栏 1009

lucener java,lucene整理2 -- 主要的类

1. lucene中主要的类1.1. Document文档类1.1.1.常用方法方法描述void add(Field field)往Document对象中添加字段void removeField(String name)删除字段。若多个字段以同一个字段名存在,则删除首先添加的字段;若不存在,则Document保持不变void removeFields(String name)删除所有字段。若...

weixin_30552495的博客 140

lucene多字段检索

默认情况下,IndexSearcher 类的search 方法返回查询结果时, 是按文档的分值排序的, 可以使用重载的search 方法对结果排序 IndexSearcher.search(Query,Sort); new Sort() 和 Sort.RELEVANCE, 以及null 一样, 采用默认排序, 要定义排序字段, 方法是将字段传入Sort 对象 ...

海宇的博客 528

Lucene索引阶段设置Document Boost和Field Boost 实现合理打分

在索引阶段设置Document Boost和Field Boost,存储在(.nrm)文件中。 如果希望某些文档和某些域比其他的域更重要,如果此文档和此域包含所要查询的词则应该得分较高,则可以在索引阶段设定文档的boost和域的boost值。 这些值是在索引阶段就写入索引文件的,存储在标准化因子(.nrm)文件中,一旦设定,除非删除此文档,否则无法改变。 如果不进行设定,则Document...

SAN_YUN的专栏 214

Lucene 排序及多字段查找

默认情况下,IndexSearcher类的search方法返回查询结果时,是按文档的分值排序的,可以使用重载的search方法对结果排序IndexSearcher.search(Query,Sort);new Sort() 和 Sort.RELEVANCE,以及null一样,采用默认排序,要定义排序字段,方法是将字段传入Sort对象Sort sort = new Sort(Stri

Elliot的专栏 545

Lucene3.0 创建索引及多目录搜索

/** * */ package com.test; import java.io.File; import java.io.IOException; import java.util.Date; import java.util.List; impor

392
上一篇: lucene-处理中文PDF的xpdf
下一篇: lucene-检索结果的翻页问题
deepfuture
博客等级 码龄17年 210粉丝 1287原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值