- 浏览: 1042159 次
- 性别:
- 来自: 长沙
文章分类
- 全部博客 (639)
- 服务器配置篇 (58)
- hibernate篇 (14)
- spring篇 (33)
- struts篇 (28)
- JS篇 (46)
- 其他技术篇 (46)
- 数据库集群配置 (6)
- JAVA基础相关 (48)
- 分布式框架HadHoop的应用 (2)
- FLEX篇 (8)
- SQLSERVER技术 (32)
- Android学习 (13)
- amchart学习笔记 (1)
- openfire+smark搭建即时通讯 (9)
- Linux学习 (18)
- Oracle数据库 (15)
- 网站优化技术 (12)
- mysql数据库 (2)
- 项目学习总结 (18)
- 工具类(JAVA) (12)
- 工具类(JS) (2)
- 设计模式 (10)
- Lucene学习 (24)
- EJB3学习 (6)
- Sphinx搜索引擎 (3)
- 工作中用到的软件小工具 (5)
- .NET (49)
- JAVA 连接SQLSERVER2008步骤 (1)
- MongoDB (19)
- Android手机开发 (3)
- Maven (6)
- vue (9)
- Shiro (4)
- mybatis (3)
- netty框架 (1)
- SpringCloud (3)
- spring-cloud (7)
- Git (1)
- dubbo (2)
- springboot (13)
- rocketmq (1)
- git学习 (2)
- kafka服务器 (2)
- linux (10)
- WEB系统辅助项目 (1)
- jenkins (2)
- docker (4)
- influxdb (3)
- python (2)
- nginx (1)
最新评论
-
jiangfuofu555:
这样数据量大,效率怎么样?
sqlserver 实现分页的前台代码 以及后台的sqlserver语句 -
w156445045:
博主请问下,如何做到实时的刷新呢,
另外我后台是Java 谢谢 ...
web 版本的汽车仪表盘,非常好看。还有各种图形 -
jackyin5918:
<transportConnector name=&qu ...
ActiveMQ的activemq.xml详细配置讲解 -
握着橄榄枝的人:
你这个不是spring1.x的吧
spring1.x使用AOP实例 -
xiaophai:
全乱套了!
openfire+spark搭建完美的及时通讯
布尔搜索:
布尔查询的对象中,包含一个子句的集合。各种子句间都是“与”、“或”这样的布尔逻辑。
package com.querytype;
import org.apache.lucene.index.Term;
import org.apache.lucene.search.BooleanClause;
import org.apache.lucene.search.BooleanQuery;
import org.apache.lucene.search.Hits;
import org.apache.lucene.search.IndexSearcher;
import org.apache.lucene.search.TermQuery;
public class BooleanQueryDemo {
/**
* @param args
*/
public static void main(String[] args) {
try {
IndexSearcher search = new IndexSearcher("d://demo");
Term t1 = new Term("bookname","女");
Term t2 = new Term("bookname","狗");
TermQuery q1 = new TermQuery(t1);
TermQuery q2 = new TermQuery(t2);
BooleanQuery query = new BooleanQuery();
query.add(q1,BooleanClause.Occur.MUST);
query.add(q2,BooleanClause.Occur.MUST);
Hits hits = search.search(query);
for(int i=0;i>
2.MUST.MUST_NOT
MUST和MUST_NOT的组合表示查询的结果中不能包含MUST_NOT所对应的查询子句的检索结果。
程序:
Term t1 = new Term("bookname","女");
Term t2 = new Term("bookname","狗");
TermQuery q1 = new TermQuery(t1);
TermQuery q2 = new TermQuery(t2);
BooleanQuery query = new BooleanQuery();
query.add(q1,BooleanClause.Occur.MUST);
query.add(q2,BooleanClause.Occur.MUST_NOT);
打印:
Document<stored/uncompressed,indexed,tokenized<bookname:英勇儿女>>
Document<stored/uncompressed,indexed,tokenized<bookname:白毛女>>
Document<stored/uncompressed,indexed,tokenized<bookname:女人是水做的>>
Document<stored/uncompressed,indexed,tokenized<bookname:我的兄弟和女儿>>
3.MUST_NOT与MUST_NOT没有含义
4.SHOULD与MUST和SHOULD与MUST_NOT
他和MUST联用,失去意义,检索结果为MUST的结果集,和MUST_NOT联用时候,SHOULD的功能和MUST功能一样。
5.SHOULD与SHOULD
表示一种或的关系。检索结果为两者的并集。
程序:
query.add(q1,BooleanClause.Occur.SHOULD);
query.add(q2,BooleanClause.Occur.SHOULD);
打印:
Document<stored/uncompressed,indexed,tokenized<bookname:篱笆女人和狗>>
Document<stored/uncompressed,indexed,tokenized<bookname:英勇儿女>>
Document<stored/uncompressed,indexed,tokenized<bookname:白毛女>>
Document<stored/uncompressed,indexed,tokenized<bookname:女人是水做的>>
Document<stored/uncompressed,indexed,tokenized<bookname:我的兄弟和女儿>>
布尔查询对其子句的数量是有限制的默认限制为1024条子查询,如果查过了,会抛出TooManyClauses异常,当然用户也可以通过BooleanQuery的方法setMaxClauseCount(int maxClauseCount).
布尔查询的子句并非只能对TermQuery的原子查询,也可以进行BooleanQuery的符合查询。
- BooleanQuery.rar (1.2 KB)
- 下载次数: 7
发表评论
-
使用Lucene-Spatial实现集成地理位置的全文检索
2015-05-27 17:33 1266Lucene通过Spatial包提供了对基于地理位置的 ... -
Lucene4.10.2开发之高亮显示
2015-05-05 23:13 563转载请注明,原创地址,谢谢配合! http://qindo ... -
bobo-browse
2011-02-10 10:22 2225bobo-browse 是一款用java写的lucene扩展组 ... -
Lucene 2 通过updateDocument更新索引
2010-12-30 15:47 2032package com.lucene; i ... -
Lucene 3建立索引和查询索引详解
2010-12-22 23:02 1817public void index() throws Corr ... -
Lucene3 查询索引
2010-12-22 22:46 1748package lucene3; import java.i ... -
Lucene3 建立索引
2010-12-22 22:25 1374Lucene3在建立索引的API上有比较大的变化。直接上程序: ... -
Lucene 3.0的简单解析及变化
2010-12-22 21:59 1115一、 概述 Lucene3 ... -
Lucene分词器之庖丁解牛
2010-12-22 07:47 3454注意:这里配置环境变量要重新启动系统后生效 我现在测试 ... -
Lucene从结果中取出数据
2010-12-21 20:23 1201有些应用,比如我们首先要搜索一个Person的索引文件,然后通 ... -
Lucene过滤器
2010-12-21 20:05 3774有的应用有些要求,对于某类型的内容即使满足条件了,但是也不能被 ... -
Lucene对于短语匹配查询的用法
2010-12-21 17:41 1345通常对于ID查询或者是比较确定字段内容的查询,我们就用: T ... -
Lucene 对所查的结果进行排序
2010-12-20 23:01 1197前面介绍完查询以后,现在要对查询结果进行排序的显示。 代码: ... -
Lucene 搜索方法(模糊搜索)
2010-12-20 11:54 3452LUCENE提供了一种模糊搜 ... -
Lucene 搜索方法(多短语搜索)
2010-12-20 11:42 1157短语搜索解决了短语搜索的问题,在很多情况下,用户输入某个关键字 ... -
Lucene 搜索方法(短语搜索)
2010-12-20 11:15 1794用户在搜索的时候,更多的情况是输入一个以上的关键字,这些关键字 ... -
Lucene 搜索方法(前缀搜索)
2010-12-20 10:27 1858PrefixQuery是一种前缀搜索,在检索的时候,常常需要进 ... -
Lucene 的索引读取工具(IndexReader)
2010-12-19 23:00 1587Lucene有一个很重要的工具IndexReader负责对索引 ... -
Lucene 搜索方法(范围搜索)
2010-12-19 22:54 1271在某些情况下,用户需要查找一定范围内的文档,比如时间,ID等。 ... -
Lucene 搜索方法(词条搜索)
2010-12-19 21:15 1241词条搜索是LUCENE最为简单的一种搜索方式,通过对某个固定的 ...
相关推荐
Lucene作为一个全文检索引擎... (5)已经默认实现了一套强大的查询引擎,用户无需自己编写代码即使系统可获得强大的查询能力,Lucene的查询实现中默认实现了布尔操作、模糊查询(Fuzzy Search[11])、分组查询等等。
布尔操作符 域搜索 通配符搜索 模糊查询 范围搜索
Lucene是一个全文搜索框架,而不是应用产品。因此它并不像www.baidu.com 或者google Desktop那么拿来就能用,它只是提供了一种工具让你能实现这些产品...接下来通过本文给大家介绍使用Lucene实现一个简单的布尔搜索功能
4.9.1. 改变默认的布尔逻辑 11 4.9.2. 不需要分词 12 4.9.3. 设置坡度值,支持FuzzyQuery 12 4.9.4. 设置通配符,支持WildcardQuery 12 4.9.5. 查找指定的Field 12 4.9.6. 范围的查找,支持RangeQuery 13 4.9.7. 现在...
7.3.1 布尔搜索 183 7.3.2 指定范围搜索 183 7.3.3 设置过滤条件 188 7.3.4 搜索结果排序 188 7.3.5 搜索页面的索引缓存与更新 190 7.4 实现关键词高亮显示 191 7.5 实现多维视图 194 7.6 实现相似文档搜索 200 7.7 ...
杰森博客,搜索部分 lucene研究项目 使用保定分析器进行中文分词 布尔查询 提供socket服务
如常见的TermQuery就是将一个简单的关键字进行封装后的对象,类似的还有BooleanQuery,即布尔型的查找。 IndexSearcher对象的search方法中总是需要一个Query对象(或是Query子类的对象),本节就来介绍各种Query类...
使用查询语言的高级布尔搜索 分面和折叠的聚类结果 使用子请求过滤搜索(包括否定过滤器) 地理位置定位 拼写检查 相关性定制 搜索建议功能(自动完成) 索引化 支持18种语言 带有每种语言的分析器的字段架构 几个...
Elasticsearch插件,用于在密集的浮点和稀疏布尔向量上进行相似性搜索。 文献资料 如果您想为Elastiknn做出贡献,请参阅developer-guide.md。 社区 如果您有疑问,错误等,请在上。 用户数 您正在使用Elastiknn吗?...
Luwak基于开源Lucene搜索库,是一种高性能的存储查询引擎。 简而言之,它允许您定义一组搜索查询,然后监视文档流中是否存在与这些查询匹配的任何内容:此功能也称为“反向搜索”和“文档路由”。 Flax为经常使用...
使用 Lucene 搜索引擎库中的类。 阶段 1:布尔检索程序支持运算符:OR、AND 和 NEAR/n。 阶段 2:添加 BM25 和 Indri 排名算法。 添加运算符:BM25 SUM 和 Indri AND 阶段 3:添加几个新的查询运算符:WINDOW、...
word2vec java版源码DiceTechJobs - Solr 插件 ...的 Solr ...概念搜索实现所需的插件(参见 Lucene Revolution 2015 talk - ) 自定义查询解析器: VectorQParser (用于处理密集向量字段)、 QueryB
Mustru是基于Lucene的桌面问答搜索引擎。 您可以使用自然语言问题或布尔查询来搜索本地文件系统。 将返回答案或命中列表。 包括基于Web的界面。
里面基本包含了全文检索引擎的所有技术,包括词典分词,索引,检索等,其中词典分词采用的是基于双数组tire树的最大匹配法,索引部分参考了lucene的部分实现,检索部分应用了布尔检索和向量模型的排名算法,基本可以...