当前位置: 代码迷 >> Web前端 >> lucene-运用QueryParser和IndexSearcher
  详细解决方案

lucene-运用QueryParser和IndexSearcher

热度:728   发布时间:2012-11-22 00:16:41.0
lucene-使用QueryParser和IndexSearcher

QueryParser

QueryParser把查询表达式转换为lucene内置的查询类型

查询表达式

匹配的文档

java

默认域包含java项的文档

java junit

java or junit

默认域中包含java和junit中的一个或两个文档。

+java +junit

java AND junit

默认域中同时包含java和junit的文档

title:ant

Title域中包含ant项的文档

title:extreme

-subject:sports

title:extreme

AND NOT subject:sports

Title域中包含extreme且subject域中不包含sports的文档

(agile OR extreme) AND methodology

默认域中包含methodology且包含agile和extreme的一个或两个项的文档

Title:”junit in action”

Title域为junit in action的文档

Title:”juint action” -5

Title域中junit和action之间距离少于5的文档

Java*

包含由java开头的项的文档

Java-

包含与java相似的文档

Lastmodified:[1/1/04 to 12/31/04]

Lastmodified域值在1/1/04和12/31/04之间的文档

IndexSearcher实例只搜索在它被实例化时已存在的索引。如果制作索引和搜索并发进行,那么最新索引的文档对搜索来说是不可见的。

IndexSearcher.search的函数声明

使用场合

Hits search(Query query)

直接进行搜索,无需过滤

Hits search(Query query,Filter filter)

在过滤标准的约束下,把搜索限制在有效文档子之内

Void search(Query query,HitCollector results)

只有当我们需要使用搜索返回的所有文档时才调用这个方法。一般来说,只有搜索结果中前几个文档才是我们所需的,所有使用此方法会降低程序性能

  相关解决方案