- 浏览: 313767 次
- 性别:
- 来自: 重庆
文章分类
- 全部博客 (286)
- 设计模式 (14)
- spring (5)
- 开发工具 (12)
- java (19)
- apache.commons工具 (7)
- ibaits (5)
- extjs4.0 (4)
- 数据库 (2)
- spring工具类 (2)
- jquery1.8 (32)
- 杂记 (1)
- linux (2)
- Quart (1)
- springMVC (2)
- webservice (1)
- oracle (5)
- dwr (6)
- jbmp3 (27)
- lucene3.5 (27)
- javascript (18)
- hibernate3.3.2 (27)
- spring事务管理 (10)
- nio (2)
- strust2 (3)
- jvm (7)
- jquery-easyui-1.2.6 (22)
- 多线程 (14)
- maven (3)
- 常用正则表达式 (4)
最新评论
-
HF_SKY000:
请问:
一、能否提供一下密钥库文件的生成方法?
二、密钥库的密 ...
Java sslSocket 聊天实例
TermRangeQuery :
字母范围搜索,不支持数字范围,比较规则:先从第一个字母开始比较,如果第一个字符在查询范围内且不等于开始范围的第一个字母,例如查询范围"jz"--"za",被查询的是lisi,那么就直接匹配了,如果被查询的是jack,由于一个字母相等了,就比较第二个字母,依次类推。
public void searchByTermRange(String field, String start, String end, int num) {
try {
IndexSearcher searcher = getSearcher();
Query query = new TermRangeQuery(field, start, end, true, true);//是否包含开始,是否包含结束
TopDocs tds = searcher.search(query, num);
System.out.println("一共查询了:" + tds.totalHits);
for (ScoreDoc sd : tds.scoreDocs) {
Document doc = searcher.doc(sd.doc);
System.out.println("id:" + doc.get("id"));
System.out.println("name:" + doc.get("name"));
System.out.println("email:" + doc.get("email"));
System.out.println("attach:" + doc.get("attach"));
System.out.println("date:" + doc.get("date"));
System.out.println("content:" + doc.get("content"));
System.out.println("======================");
}
searcher.close();
} catch (CorruptIndexException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
su.searchByTermRange("name", "jz", "mi", 10);
NumericRange :
数字范围查询 。
Query query = NumericRangeQuery.newIntRange (field, start, end, true, true); //是否包含开始,是否包含结束
su.searchByNumricRange("attach", 2, 10, 5);
PrefixQuery :
通过字符串前缀来查询。
Query query = new PrefixQuery(new Term(field, value));
//查询以sex开头的
su.searchByPrefix("content", "sex", 10);
WildcardQuery :
通配符查询。
//在传入的value中可以使用通配符:?和*,?表示匹配一个字符,*表示匹配任意多个字符
Query query = new WildcardQuery(new Term(field, value));
//匹配@itat.org结尾的所有字符
su.searchByWildcard("email", "*@itat.org", 10);
//匹配j开头的有三个字符的name
su.searchByWildcard("name", "j???", 10);
BooleanQuery :
用于表示布尔查询子句关系的类,包括:BooleanClause.Occur.MUST,BooleanClause.Occur.MUST_NOT,BooleanClause.Occur.SHOULD。
必须包含,不能包含,可以包含三种.有以下6种组合
:
1.MUST和MUST:取得连个查询子句的交集。
2.MUST和MUST_NOT:表示查询结果中不能包含MUST_NOT所对应的查询子句的检索结果。
3.SHOULD与MUST_NOT:连用时,功能同MUST和MUST_NOT。
4.SHOULD与MUST连用时,结果为MUST子句的检索结果,但是SHOULD可影响排序。
5.SHOULD与SHOULD:表示“或”关系,最终检索结果为所有检索子句的并集。
6.MUST_NOT和MUST_NOT:无意义,检索无结果。
BooleanQuery query = new BooleanQuery();
query.add(new TermQuery(new Term("name", "zhangsan")), Occur.MUST);
query.add(new TermQuery(new Term("content", "welcome")), Occur.MUST_NOT);
PhraseQuery :
短语查询。
query.add(new Term("content", "pingpeng"));
query.add(new Term("content", "i"));
query.setSlop(3);//要求结果中不仅包含上面的term,并且两个Term之间的间隔不能超过3
FuzzyQuery :
模糊查询,在FuzzyQuery类定义中定义了两个成员变量:
private float minimumSimilarity;
private int prefixLength;
minimumSimilarity是最小相似度,取值范围为0.0~1.0,包含0.0但不包含1.0,默认值为0.5。prefixLength是前缀长度,默认为0。
minimumSimilarity表示是最小相似度,可以通过指定一个相似度来决定模糊匹配的严格程度。默认为0.5,当这个值越小,通过模糊查找出的文档的匹配程度就越低,
文档的数量也就越多;当这个值越大,说明要匹配程度更大,匹配的文档数也就越少,当相似度设置为1,那么就退化为TermQuery查询,所以当这个值>=1或<0会抛出IllegalArgumentException异常。
另外一个参数prefixLength表示在进行模糊匹配的时候,要有多少个前缀字母必须完全匹配。例如当该值设置为“1”,则表示所有此条只有第一个字母与检索关键字相符时,才会被集合选中。
FuzzyQuery query = new FuzzyQuery(new Term("name", "zhang"), 0.1f, 0);
发表评论
-
二十七、Luence在项目中运用
2012-12-26 15:03 1091public class LuceneContext { ... -
二十六、solr的基本使用
2012-12-26 10:26 959public class Message { p ... -
二十五、solr与tomcat的整合
2012-12-25 13:52 10491、solr是全文搜索服务器,专门用户管理索引的。 2 ... -
二十四、通过NRTManager和SearchManager实现近实时搜索
2012-12-21 11:35 1348是否进行实时搜索 实时搜索(近实时搜索) ... -
二十三、高亮显示
2012-12-20 09:24 1006public void lighter01() { ... -
二十二、Tika
2012-12-20 09:24 956Tika是2008年才产生的一个apache的项目,主要用于打 ... -
二十一、Luke
2012-12-20 09:24 808luke是一个查询索引的工具,使用时必须注意:版本要与luce ... -
二十、自定义过滤器
2012-12-20 09:23 865有的应用有些要求,对于某类型的内容即使满足条件了,但是也不 ... -
十七、搜索过滤
2012-12-20 09:23 629public void searcherByFilter(St ... -
十九、自定义QueryParser
2012-12-19 16:28 1218原因: 1、对于某些Quer ... -
十八、自定义评分
2012-12-19 16:18 789public class MyCustomScoreProvi ... -
十六、搜索排序
2012-12-19 12:14 1026public void searcherBySort(Stri ... -
十五、实现简单同义词分词器
2012-12-19 11:41 1252public interface SamewordContex ... -
十四、中文分词器
2012-11-28 13:49 861中文分词器 : Paoding:庖丁解牛分词器。 ... -
十三、自定义Stop分词器
2012-11-28 13:42 760import java.io.Reader; impor ... -
十二、Attribute
2012-11-28 13:20 823Attribute : ... -
十一、分词器的核心类
2012-11-28 13:12 900Analyzer : SimpleAnalyz ... -
十、分页搜索
2012-11-27 17:30 873分页查询有两种实现方式: 1、再查询 ... -
九、Queryparser
2012-11-27 17:24 993Mike 默认域包含mike Mi ... -
七、搜索的简单实现(TermQuery)
2012-11-26 17:12 991TermQuery只能精确匹配字符串(包括分词后的字符串,不 ...
相关推荐
除了查询优化本身,本书还探讨了与数据库相关的其他重要概念和技术。 - **磁盘驱动器**:介绍磁盘的基本工作原理以及如何高效地利用磁盘资源。 - **数据库缓冲区**:用于缓存常用数据,减少磁盘I/O操作。 - **物理...
- **其他辅助类和接口**:如Document模型、Query解析类等。 通过以上组件的协同工作,可以构建出一个功能完备、高效的自定义Web搜索引擎。学习并掌握这些知识,对于开发自己的搜索引擎或者提升现有系统的搜索体验...
在Android系统中,QuickSearchBox(QSB)是一个非常重要的组件,它提供了全局搜索的功能,允许用户快速查找应用内的数据、联系人、网页以及更多其他内容。本篇文章将深入探讨Android QSB的源码,揭示其工作原理和...
5. **多语言支持**:除了Java版本外,还有其他语言版本,如.NET等。 #### 四、Lucene的工作原理 Lucene的核心机制是基于倒排索引(Inverted Index)。倒排索引是一种用于快速检索特定关键词的技术。在传统的正向...
虽然C#的LINQ(Language Integrated Query)可以简化查询操作,但在处理大量数据时,自定义算法可能更为高效。 七、异常处理 任何涉及到文件操作的程序都应考虑异常处理。C#的try-catch语句块可以帮助捕获并处理...
除了基本的单词查询,Lucene还支持更复杂的查询类型,如PrefixQuery(前缀查询)、WildcardQuery(通配符查询)、FuzzyQuery(模糊查询)、RegexQuery(正则表达式查询)等。这些查询类型极大地扩展了搜索能力,允许...
最后,当应用达到可发布状态时,可以通过Android Studio生成APK文件,进行签名并上传到Google Play或其他应用市场。 总结,“Book-Query-App”项目涵盖了Android开发的多个关键知识点,从Java基础到Android特有的...
本文将对Elasticsearch的安装过程进行总结,包括下载、安装插件、启动、接口测试、可视化页面的使用以及与其他搜索引擎和数据库的对比。 ### 一、下载Elasticsearch 首先,你需要从官方网站下载适合你操作系统的...
这种通信方式需要遵循预定义的通信语言,如KQML(Knowledge Query and Manipulation Language),它包括通信、消息和内容三个层次,提供了更复杂的交互可能性,如动作表达式和通信服务器,用于智能体之间的信息交换...
除了基本的索引和查询,SolrJ还支持其他高级功能,如更新文档、删除文档、批量操作、实时获取(RTG)、分布式搜索等。例如,更新文档可以这样操作: ```java doc.removeField("content"); doc.addField("content", ...
- **字段(Field)**:文档中的基本单元,可以是文本、数字或其他数据类型。 - **映射(Mapping)**:定义索引中文档的结构,包括字段的类型及其元数据。 - **集群(Cluster)**:由一个或多个节点组成的集合,共同...
HQL(Hibernate Query Language)是Hibernate的专用查询语言,类似SQL但面向对象。除此之外, Criteria API 提供了另一种动态构建查询的方式。 五、关联映射 Hibernate支持多种关联关系,如一对一、一对多、多对一...
**Match Phrase 查询**与 Match 查询类似,但区别在于它要求查询词必须作为一个完整的短语出现在文档中,即查询词的位置顺序不能改变,也不能插入其他词。 ```json GET /blog/blog/_search { "query": { "match_...
BOSS(Build Your Own Search Service)是雅虎搜索开放其搜索基础设施的一项计划,允许第三方利用自己的数据、内容、技术、社交图谱或其他资产构建创新的搜索产品。目前BOSS支持以下功能: - **Web搜索** - **新闻...
- **其他选项**:根据具体需求选择合适的搜索引擎,可能还包括Sphinx、Whoosh等。 #### 四、高级搜索技术 - **复杂查询**:Lucene支持多种类型的查询,包括布尔查询、短语查询等,以满足复杂的搜索需求。 - **近似...
它提供了浏览、搜索、定制和共享信息的功能,用户可以根据权限访问不同的内容。 三、Cognos Framework Manager 在Cognos Framework Manager中,数据模型的创建和管理是关键。用户可以将来自不同数据源的数据整合到...