SpanFirstQuery是一个很简单的SpanQuery,在根据spans进行召回doc的时候,他会判断当前出现的位置是否满足一定的条件——出现的是不是在指定的end之前,如果是的话说明当前的位置是符合要求的,否则会继续读取下一个位置。我们看一下他的getSpans方法
@Override public Spans getSpans(final IndexReader reader) throws IOException { return new Spans() { private Spans spans = match.getSpans(reader);//获得封装的SpanQuery的span,返回的spans是这个spans的代理。 /** 这个spanquery唯一最重要的地方就是这里,只有某个term出现的位置不能超过指定的end的值才算是当前的doc合格。 */ @Override public boolean next() throws IOException { while (spans.next()) { // scan to next match if (end() <= end)//只要当前的位置不是小于end则继续循环位置,直到所有的位置都循环完或者某个位置小于end return true; } return false; } @Override //移动到不小于指定的docid得位置 public boolean skipTo(int target) throws IOException { if (!spans.skipTo(target)) return false; return spans.end() <= end || next(); } //其他的方法都是直接调用的spans的方法。 @Override public int doc() { return spans.doc(); } @Override public int start() { return spans.start(); } @Override public int end() { return spans.end(); } // TODO: Remove warning after API has been finalized @Override public Collection<byte[]> getPayload() throws IOException { ArrayList<byte[]> result = null; if (spans.isPayloadAvailable()) { result = new ArrayList<byte[]>(spans.getPayload()); } return result;// TODO: any way to avoid the new construction? } // TODO: Remove warning after API has been finalized @Override public boolean isPayloadAvailable() { return spans.isPayloadAvailable(); } @Override public String toString() { return "spans(" + SpanFirstQuery.this.toString() + ")"; } }; }
我也不知道这个spanquery有啥用。。。
相关推荐
3. **搜索优化**:Lucene 3.0.3的源码中,可以看到对Boosting、Filtering和Sorting等高级搜索功能的实现,以及对TopDocs排序算法的优化。 四、实战应用 了解了Lucene的内部机制后,我们可以根据实际项目需求,结合...
这个"lucene3.0.3搜索的使用示例"压缩包文件很可能是为了帮助用户理解并学习如何在项目中应用Lucene 3.0.3版本的功能。 在Lucene 3.0.3中,主要包含了以下核心概念和知识点: 1. **索引(Indexing)**:这是Lucene...
《盘古分词与Lucene 3.0.3在.NET 4.0中的应用实践》 盘古分词和Lucene是两个在文本处理和信息检索领域中至关重要的工具。盘古分词,作为一款优秀的中文分词系统,能够高效准确地对中文文本进行分词,为后续的数据...
《Lucene3.0.3与盘古分词:打造高效搜索引擎》 在信息技术日新月异的时代,搜索引擎已经成为我们获取信息的重要工具。Lucene,作为Apache软件基金会的一个开源项目,是Java语言实现的全文检索引擎库,为开发者提供...
《盘古分词与Lucene 3.0.3在.NET 4.0中的应用实践》 盘古分词和Lucene是两个在中文信息处理领域广泛应用的工具,本示例将详细介绍如何在.NET 4.0环境中整合这两个组件,以实现高效的全文搜索功能,并新增了分页功能...
《盘古分词与Lucene 3.0.3在.NET 4.0中的应用实践》 盘古分词和Lucene是两个在文本处理和全文检索领域中至关重要的工具。本文将深入探讨如何在.NET 4.0环境中集成并使用这两个组件,以实现高效的文本分析和搜索引擎...
在“Lucene3.0.3+盘古分词(证实可用,可指定使用自己的词库文件).rar”这个压缩包中,包含了实现这一功能所需的DLL文件和词库文件,这使得开发者可以轻松地在自己的项目中集成这一功能。 首先,我们要明白Lucene ...
lucene3.0.3.core.jar文件,不用到apache官方网站下载17M的包,直接下载这个core就可以了。
在 Lucene 3.0.3 版本中,我们看到了一系列重要的特性和改进,这些都极大地提升了其性能和易用性。 1. **索引过程**:Lucene 的索引过程涉及到将文档内容转换为倒排索引,这是一种高效的存储和检索方式。在 3.0.3 ...
以下是对Lucene3.0分词系统中涉及的关键知识点的深入解析。 ### 英文分词原理 英文分词相较于中文来说较为简单,因为英文单词间通常以空格作为天然的分隔符。然而,为了提高搜索效率和准确性,Lucene3.0采用了更...
《Apache Lucene 3.0.3:全文检索与搜索引擎核心技术详解》 Apache Lucene 是一个开源的全文检索库,由Java编写,提供强大的搜索功能。在这个3.0.3版本中,它继续展现了其在信息检索领域的强大性能和灵活性。Lucene...
这是Lucene.NET v3.0.3 DEMO范例程序(含PanGu分词),用C#语言编写的,同时对PanGu分词进行了整合,可以直接下载运行。 项目中还整理了一个后台任务线程监听范例,可以用作增量索引创建,但这个需要你自行加入相关...
Apache Lucene.Net 3.0.3 just passed a vote for release - our first official release since graduating from the incubator in August. A lot of work was put into porting and testing the code. We've ...
Lucene SpellChecker for Lucene 3.0.2
lucene-smartcn-3.0.3.jar
此资源对应的是Lucene 3.0.3版本,这是Lucene发展历史中的一个重要里程碑。 在Lucene 3.0.3版本中,包含了以下关键知识点: 1. **索引构建**:Lucene的核心功能之一就是快速构建倒排索引。这个版本中,你可以学习...
Lucene.Net 3.0 最新源码 Lucene.net是Lucene的.net移植版本,是一个开源的全文检索引擎开发包,即它不是一个完整的全文检索引擎,而是一个全文检索引擎的架构,提供了完整的查询引擎和索引引擎。开发人员可以基于...
lucene3.0.3源码和教程