struts2 的标签使用
navicat NAVF-3IBB-VYIF-FUMI 注册码
关于lucene 下载以后 core这个包里是核心的jar analyzar 这个包里有标准的分词器jar,一般下载下来的源码是tgz格式的压缩文件,winrar可以解压,解压后可以在压缩成zip 可以直接用
lucene的query 可以有TermQuery :含有某个词的指定文档数,要用到的方法是TermQuery
范围搜索
用到的方法是
Query query = new TermRangeQuery(field,start,end,true, true);
数字范围,使用NumericRangeQuery,方法和前面的一样,只是创建Query对象不一样:
Query query = NumericRangeQuery
.newIntRange(field,start, end,true,true);
前缀搜索
方法和前面的一样,只是创建Query对象不一样:
Query query = new PrefixQuery(new Term(field,value));
精确匹配搜索
查出在某个域中,含有某个词的指定文档数,要用到的方法是TermQuery
public void searchByTerm(String field,String name,int num) {
try {
IndexSearcher searcher = getSearcher();
Query query = new TermQuery(new Term(field,name));
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(doc.get("id")+"---->"+
doc.get("name")+"["+doc.get("email")+
"]-->"+doc.get("id")+","+
doc.get("attach")+","+doc.get("date"));
}
searcher.close();
} catch (CorruptIndexException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
@Test
public void searchByTerm() {
su.searchByTerm("content","football",3);
}
|
范围搜索
用到的方法是
Query query = new TermRangeQuery(field,start,end,true, true);
其中第四个参数如果是为true,表示包含start,否则不包含。第五个参数的意思和第四个一样,只是指定的是end
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(doc.get("id") + "---->" + doc.get("name")
+ "[" + doc.get("email") + "]-->" + doc.get("id") + ","
+ doc.get("attach") + "," + doc.get("date"));
}
searcher.close();
} catch (CorruptIndexException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
@Test
public void searchByTermRange() {
//查询ID从1到3的
su.searchByTermRange("id", "1", "3", 10);
//查询name以a开头和s结尾的
su.searchByTermRange("name","a","s",10);
//由于attachs是数字类型,使用TermRange无法查询
su.searchByTermRange("attach","2","10", 5);
}
|
数字范围,使用NumericRangeQuery,方法和前面的一样,只是创建Query对象不一样:
Query query = NumericRangeQuery
.newIntRange(field,start, end,true,true);
测试示例:
public voidsearchByNumRange() {
su.searchByNumricRange("attach",2,10,5);
}
前缀搜索
方法和前面的一样,只是创建Query对象不一样:
Query query = new PrefixQuery(new Term(field,value));
测试方法
@Test
public voidsearchByPrefix() {
su.searchByPrefix("content","s",10);
}
通配符搜索
在传入的value中可以使用通配符:?和*,?表示匹配一个字符,*表示匹配任意多个字符
Query query = new WildcardQuery(new Term(field,value));
多条件搜索
BooleanQuery可以连接多个子查询
Occur.MUST表示必须出现
Occur.SHOULD表示可以出现
Occur.MUSE_NOT表示不能出现
|
分享到:
相关推荐
"lucene in action"很可能是一本关于Lucene实战的书籍,涵盖了索引创建、查询执行、性能优化等方面的知识,对于想深入了解和应用全文搜索技术的开发者来说是宝贵的资源。 5. **MySQL与Navicat**:Navicat是一款流行...
Java 项目,包含:项目源码、数据库脚本、部署说明等,该项目可以作为课程设计使用,前后端代码都在里面。 该系统功能完善、界面美观、操作简单...2. 数据库可视化软件,推荐使用它 Navicat,MySql 建议使用 5.7 版本
"pivot-luke-5.5.0-luke-release.zip" 是一个专门针对Lucene索引库的图形化界面工具,它的全称是Luke,由Java编写,就像数据库管理的得力助手Navicat一样,为Lucene用户提供了直观易用的操作界面。 Luke的主要功能...
ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java开发的,并作为Apache许可条款下的开放源码发布,是当前流行的企业级搜索...
Elasticsearch 是一个开源的、分布式的、提供多用能的全文搜索引擎,也是基于 Lucene 搜索的服务器,可以近乎实时地存储和搜索数据。Elasticsearch 能很方便地用于对大量数据进行搜索和分析,充分利用 Elasticsearch...
* Solr/Lucene/HBase/Hive/Kylin 基础:掌握 Solr、Lucene、HBase、Hive、Kylin 等框架的使用。 * Spring/Spring Boot/Spring Security/Spring Data/Spring Data JPA/Spring Data MongoDB/Spring Data Redis 基础:...
Elasticsearch 是一个开源的、高扩展的、分布式的、提供多用户能力的全文搜索引擎,也是一个基于 Lucene 搜索的服务器,可以近乎实时地存储和搜索数据。Elasticsearch 能很方便地用于对大量数据进行搜索和分析,充分...
Navicat是一个数据库管理工具,用于管理和访问数据库。Redis是一个内存数据库,用于高速存储和检索数据。 此外,服务器上还需要安装和配置消息队列系统,例如RabbitMQ等。RabbitMQ是一个开源的消息队列系统,用于...
在系统设计中,eGoBuy采用了多种技术组件和工具,例如Eclipse Mars 2作为开发工具,Maven作为项目管理和构建工具,SVN进行版本控制,MySQL和Navicat Premium作为数据库和数据库管理工具,Linux作为服务器的操作系统...
- **ElasticSearch**:是一个基于Lucene构建的开源搜索引擎,提供全文搜索功能。 - **Linux**:作为项目运行的操作系统。 - **阿里云**:用于项目的云服务部署。 - **Vue**:是一个构建用户界面的渐进式JavaScript...
安装MySQL后,为了便于管理和操作数据库,你可以选择安装可视化工具如SQLyog或其它类似软件,如Navicat。 Maven是Java项目构建和管理的重要工具,它管理项目的依赖关系,自动化构建流程。设置Maven环境,配置好本地...
Solr & Elasticsearch | 分布式全文搜索引擎 | [http://lucene.apache.org/solr/](http://lucene.apache.org/solr/) [https://www.elastic.co/](https://www.elastic.co/) Quartz | 作业调度框架 | ...